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 event_notifier;
11pub mod events;
12pub mod extended_hashmap;
13pub mod helpers;
14pub mod hooks;
15pub mod layers;
16pub mod lifecycle;
17pub mod lru_cache;
18pub mod node_id;
19pub mod notify;
20pub mod path_element;
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        event_notifier::EventNotifier,
101        events::data::*,
102        events::*,
103        hooks::use_id::*,
104        lifecycle::{
105            base::*,
106            context::*,
107            effect::*,
108            future_task::*,
109            memo::*,
110            reactive::*,
111            state::*,
112            task::*,
113        },
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            shadow::*,
127            text_align::*,
128            text_height::*,
129            text_overflow::*,
130            text_shadow::*,
131        },
132        user_event::UserEvent,
133    };
134}
135
136/// Used by renderers such as freya-testing, freya-winit or just integration crates.
137pub mod integration {
138    pub use rustc_hash::*;
139
140    pub use crate::{
141        accessibility::{
142            dirty_nodes::*,
143            focus_strategy::*,
144            id::*,
145            screen_reader::*,
146            tree::*,
147        },
148        animation_clock::AnimationClock,
149        data::*,
150        element::*,
151        elements::{
152            extensions::*,
153            label::LabelElement,
154        },
155        event_notifier::*,
156        events::{
157            data::*,
158            executor::*,
159            measurer::*,
160            name::*,
161            platform::*,
162        },
163        lifecycle::state::State,
164        node_id::NodeId,
165        platform_state::*,
166        render_pipeline::RenderPipeline,
167        rendering_ticker::*,
168        runner::Runner,
169        scope_id::ScopeId,
170        style::default_fonts::default_fonts,
171        tree::{
172            DiffModifies,
173            Tree,
174        },
175        user_event::*,
176    };
177}