vizia_core/
lib.rs

1//! Vizia
2
3#![allow(clippy::type_complexity)]
4// To allow a match syntax in event handlers with one event variant
5#![allow(clippy::single_match)]
6// To allow enum names with the same prefix
7#![allow(clippy::enum_variant_names)]
8#![allow(clippy::only_used_in_recursion)]
9#![allow(clippy::uninlined_format_args)]
10#![allow(mismatched_lifetime_syntaxes)]
11// #![warn(missing_docs)]
12
13extern crate self as vizia;
14
15pub(crate) mod accessibility;
16pub mod animation;
17pub mod binding;
18#[doc(hidden)]
19pub(crate) mod cache;
20pub mod context;
21#[doc(hidden)]
22pub(crate) mod entity;
23pub mod environment;
24pub mod events;
25pub mod input;
26pub mod layout;
27pub mod localization;
28pub mod model;
29pub mod modifiers;
30pub mod resource;
31pub mod style;
32pub(crate) mod systems;
33pub(crate) mod text;
34#[doc(hidden)]
35pub mod tree;
36/// Helper utilities
37pub mod util;
38pub mod view;
39pub mod views;
40pub mod window;
41
42mod storage;
43
44/// Contains types and functions used for custom drawing within views. This is a re-export of [skia-safe](https://github.com/rust-skia/rust-skia).
45pub mod vg {
46    pub use skia_safe::*;
47}
48
49/// A collection of built-in SVG icons.
50pub mod icons;
51
52#[doc(hidden)]
53pub mod backend {
54    pub use super::accessibility::IntoNode;
55    pub use super::context::backend::BackendContext;
56    pub use vizia_window::WindowDescription;
57}
58
59/// Members which we recommend you wildcard-import.
60#[doc(hidden)]
61pub mod prelude {
62    pub use super::binding::{Binding, Res};
63
64    pub use vizia_reactive::{
65        Effect, Memo, ReadSignal, Signal, SignalGet, SignalMap, SignalRead, SignalTrack,
66        SignalUpdate, SignalWith, SignalWrite, SyncDerivedSignal, SyncReadSignal, SyncSignal,
67        SyncWriteSignal, UpdaterEffect, WriteSignal,
68    };
69
70    pub use super::{impl_res_clone, impl_res_simple};
71
72    pub use crate::model::Model;
73
74    pub use super::animation::{Animation, AnimationBuilder, KeyframeBuilder};
75    pub use super::context::{
76        AccessContext, AccessNode, Context, ContextProxy, DataContext, DrawContext, EmitContext,
77        EventContext, ProxyEmitError, WindowState,
78    };
79    pub use super::entity::Entity;
80    pub use super::environment::{AppTheme, Environment, EnvironmentEvent, ThemeMode};
81    pub use super::events::{Event, Propagation, Timer, TimerAction};
82    pub use super::include_style;
83    pub use super::input::{Keymap, KeymapEntry, KeymapEvent};
84    pub use super::layout::{BoundingBox, GeoChanged};
85    pub use super::localization::{Localized, ToStringLocalized};
86    pub use super::modifiers::{
87        AbilityModifiers, AccessibilityModifiers, ActionModifiers, LayoutModifiers,
88        LinearGradientBuilder, ShadowBuilder, StyleModifiers, TextModifiers,
89    };
90    pub use super::resource::{ImageId, ImageRetentionPolicy};
91    pub use super::util::{CSS, IntoCssStr};
92    pub use super::view::{Handle, View};
93    pub use super::views::*;
94    pub use super::window::{DropData, WindowEvent};
95    pub use accesskit::{Action, Live, Role};
96    pub use skia_safe::Canvas;
97    pub use vizia_id::GenerationalId;
98    pub use vizia_input::{Code, Key, KeyChord, Modifiers, MouseButton, MouseButtonState};
99    pub use vizia_storage::{Tree, TreeExt};
100    pub use vizia_window::{Anchor, AnchorTarget, WindowButtons, WindowPosition, WindowSize};
101
102    pub use super::style::*;
103
104    pub use morphorm::Units::*;
105    pub use morphorm::{LayoutType, PositionType, Units};
106    pub use unic_langid::{LanguageIdentifier, langid};
107    pub use web_time::{Duration, Instant};
108}