sim_lib_web_layout/lib.rs
1//! Workspace value, panes/tabs/docks, and layout persistence (WEBUI_4).
2//!
3//! The workspace is one SIM value: panes, tabs, splits, docks, floating
4//! inspectors, overlays, open resources, active lens per resource, mode,
5//! session ref, palette state, and history ref. Because it round-trips through
6//! general codecs, a workspace can be saved, shared, versioned, diffed, and
7//! restored as data. Layout is data; restoring a session is decoding a value.
8//!
9//! This crate provides the workspace [`value`] model, [`pane`] records, the
10//! [`layout`] engine (operations over the workspace value), and a [`scene`]
11//! encoder for the dock/split arrangement.
12
13#![forbid(unsafe_code)]
14#![deny(missing_docs)]
15
16mod citizen;
17pub mod layout;
18pub mod palette;
19pub mod pane;
20pub mod scene;
21pub mod value;
22
23pub use citizen::{WorkspaceDescriptor, workspace_descriptor_class_symbol};
24pub use layout::{LayoutOp, apply_layout_op, layout_op_from_intent};
25pub use palette::{EntryKind, Palette, PaletteEntry, card_target, open_card};
26pub use pane::{new_pane, pane_dock, pane_id, pane_lens, pane_resource, rect};
27pub use scene::workspace_scene;
28pub use value::{WORKSPACE_CLASS, focus, mode, new_workspace, panes};
29
30#[cfg(test)]
31mod palette_tests;
32#[cfg(test)]
33mod tests;