freya_core/
lib.rs

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