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::{
47        accessibility::{
48            focus::*,
49            focus_strategy::*,
50            focusable::*,
51            id::{
52                AccessibilityId,
53                AccessibilityRole,
54            },
55            screen_reader::*,
56        },
57        animation_clock::AnimationClock,
58        cursor::*,
59        data::*,
60        debug::*,
61        diff_key::DiffKey,
62        element::RenderContext,
63        element::{
64            AppComponent,
65            Component,
66            ComponentKey,
67            ComponentOwned,
68            Element,
69            IntoElement,
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            NoArgCallback,
103        },
104        events::data::*,
105        events::*,
106        events_combos::*,
107        hooks::use_id::*,
108        layers::Layer,
109        lifecycle::{
110            base::*,
111            context::*,
112            effect::*,
113            future_task::*,
114            memo::*,
115            reactive::*,
116            state::*,
117            task::*,
118        },
119        platform::*,
120        reactive_context::ReactiveContext,
121        rendering_ticker::RenderingTicker,
122        style::{
123            border::*,
124            color::*,
125            corner_radius::*,
126            cursor::*,
127            fill::*,
128            font_slant::*,
129            font_weight::*,
130            font_width::*,
131            gradient::*,
132            scale::*,
133            shadow::*,
134            text_align::*,
135            text_height::*,
136            text_overflow::*,
137            text_shadow::*,
138        },
139        user_event::UserEvent,
140    };
141}
142
143/// Used by renderers such as freya-testing, freya-winit or just integration crates.
144pub mod integration {
145    pub use rustc_hash::*;
146
147    pub use crate::{
148        accessibility::{
149            dirty_nodes::*,
150            focus_strategy::*,
151            id::*,
152            screen_reader::*,
153            tree::*,
154        },
155        animation_clock::AnimationClock,
156        data::*,
157        element::*,
158        elements::extensions::*,
159        events::{
160            data::*,
161            executor::*,
162            measurer::*,
163            name::*,
164            platform::*,
165        },
166        lifecycle::state::State,
167        node_id::NodeId,
168        platform::*,
169        render_pipeline::RenderPipeline,
170        rendering_ticker::*,
171        runner::Runner,
172        scope_id::ScopeId,
173        style::default_fonts::default_fonts,
174        tree::{
175            DiffModifies,
176            Tree,
177        },
178        user_event::*,
179    };
180}