1#![forbid(unsafe_code)]
29#![deny(missing_docs)]
30
31mod citizen;
32pub mod codec;
33pub mod contract;
34pub mod cookbook;
35pub mod dispatch;
36pub mod embed;
37pub mod mode;
38pub mod palette;
39pub mod profiles;
40mod render;
41pub mod set_lens;
42pub mod stack;
43pub mod surface;
44pub mod universal;
45pub mod universal_editor;
46pub mod universal_view;
47
48pub use citizen::{ViewLensDescriptor, view_lens_descriptor_class_symbol};
49pub use codec::{PairCodec, SurfaceCodec, roundtrip_holds};
50pub use contract::{Draft, Editor, Lens, LensKind, LensMeta, Operation, View};
51pub use cookbook::universal_lens_demo;
52pub use dispatch::{DispatchContext, DispatchOutcome, DispatchReason, LensRegistry};
53pub use embed::embed_scene;
54pub use mode::{Exposure, Mode, action_exposure, denied_scene, readonly_scene, universal_scene};
55pub use palette::{
56 A11y, Command, CommandKind, FocusDir, a11y_of, diagnostics_scene, filter_commands, focused_id,
57 move_focus, palette_intent, palette_scene, with_a11y, with_focus,
58};
59pub use profiles::{DEVICE_PRESETS, project_for_preset};
60pub use set_lens::{active_lens, apply_set_lens, empty_pane_lenses};
61pub use stack::LensStackEntry;
62pub use surface::{SurfaceCaps, SurfaceError};
63pub use universal::{UNIVERSAL_EDITOR_ID, UNIVERSAL_VIEW_ID, register_universal_default};
64pub use universal_editor::{EDIT_MODES, UniversalEditor, render_draft};
65pub use universal_view::{UniversalView, render_value};
66
67pub const UNIVERSAL_DEFAULT_LENS: &str = UNIVERSAL_VIEW_ID;
69
70pub static RECIPES: sim_cookbook::EmbeddedDir =
72 include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
73
74#[cfg(test)]
75mod mode_tests;
76#[cfg(test)]
77mod stack_tests;
78#[cfg(test)]
79mod tests;
80#[cfg(test)]
81mod universal_tests;