Skip to main content

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