freya_core/
lib.rs

1pub mod accessibility;
2pub mod animation_clock;
3pub mod current_context;
4pub mod cursor;
5pub mod data;
6pub mod diff_key;
7pub mod element;
8pub mod elements;
9pub mod event_handler;
10pub mod events;
11pub mod extended_hashmap;
12pub mod helpers;
13pub mod hooks;
14pub mod layers;
15pub mod lifecycle;
16pub mod lru_cache;
17pub mod node_id;
18pub mod notify;
19pub mod path_element;
20pub mod platform;
21pub mod platform_state;
22pub mod reactive_context;
23pub mod render_pipeline;
24pub mod rendering_ticker;
25pub mod runner;
26pub mod scope;
27pub mod scope_id;
28pub mod style;
29pub mod text_cache;
30pub mod tree;
31pub mod tree_layout_adapter;
32pub mod user_event;
33
34/// Used by all end users.
35pub mod prelude {
36    pub use bytes::Bytes;
37    pub use cursor_icon::CursorIcon;
38    pub use keyboard_types::{
39        Code,
40        Key,
41        Modifiers,
42    };
43
44    pub use crate::{
45        accessibility::{
46            focus::*,
47            focus_strategy::*,
48            focusable::*,
49            id::{
50                AccessibilityId,
51                AccessibilityRole,
52            },
53            screen_reader::*,
54        },
55        animation_clock::AnimationClock,
56        cursor::*,
57        data::*,
58        diff_key::DiffKey,
59        element::RenderContext,
60        element::{
61            Element,
62            FpRender,
63            IntoElement,
64            Render,
65            RenderKey,
66            RenderOwned,
67        },
68        elements::{
69            extensions::*,
70            image::{
71                AspectRatio,
72                ImageCover,
73                // The image element is hidden on purpose as its a "low level" element, users should rather use the `ImageViewer` component.
74                SamplingMode,
75            },
76            label::{
77                Label,
78                TextWidth,
79                label,
80            },
81            paragraph::{
82                Paragraph,
83                ParagraphHolder,
84                Span,
85                paragraph,
86            },
87            rect::{
88                Rect,
89                rect,
90            },
91            svg::{
92                Svg,
93                svg,
94            },
95        },
96        event_handler::{
97            Callback,
98            EventHandler,
99        },
100        events::data::*,
101        events::*,
102        hooks::use_id::*,
103        lifecycle::{
104            base::*,
105            context::*,
106            effect::*,
107            future_task::*,
108            memo::*,
109            reactive::*,
110            state::*,
111            task::*,
112        },
113        platform::Platform,
114        platform_state::*,
115        reactive_context::ReactiveContext,
116        rendering_ticker::RenderingTicker,
117        style::{
118            border::*,
119            color::*,
120            corner_radius::*,
121            fill::*,
122            font_slant::*,
123            font_weight::*,
124            font_width::*,
125            gradient::*,
126            scale::*,
127            shadow::*,
128            text_align::*,
129            text_height::*,
130            text_overflow::*,
131            text_shadow::*,
132        },
133        user_event::UserEvent,
134    };
135}
136
137/// Used by renderers such as freya-testing, freya-winit or just integration crates.
138pub mod integration {
139    pub use rustc_hash::*;
140
141    pub use crate::{
142        accessibility::{
143            dirty_nodes::*,
144            focus_strategy::*,
145            id::*,
146            screen_reader::*,
147            tree::*,
148        },
149        animation_clock::AnimationClock,
150        data::*,
151        element::*,
152        elements::{
153            extensions::*,
154            label::LabelElement,
155        },
156        events::{
157            data::*,
158            executor::*,
159            measurer::*,
160            name::*,
161            platform::*,
162        },
163        lifecycle::state::State,
164        node_id::NodeId,
165        platform::*,
166        platform_state::*,
167        render_pipeline::RenderPipeline,
168        rendering_ticker::*,
169        runner::Runner,
170        scope_id::ScopeId,
171        style::default_fonts::default_fonts,
172        tree::{
173            DiffModifies,
174            Tree,
175        },
176        user_event::*,
177    };
178}