Expand description
Data model abstractions for Teksilo.
Provides reactive collection types (ListModel<T>, TreeModel<T>) and
change notification enums (DataChange, TreeChange) for data-driven
widgets like ListView, TreeView, and Repeater.
The two source traits — ListDataSource (flat) and TreeDataSource
(hierarchical) — are the read-and-command interfaces every data view talks
to. ListModel / TreeModel are built-in implementations; an external
source of truth (e.g. a Qleany entity store) implements a source trait
directly and so never mirrors itself into a built-in model. Each trait
carries a capability protocol — identity (key_at/index_of), DnD
validation (drag/can_accept/accept_drop/on_drag_out), and lazy
loading (row_state/request_window/can_fetch_more/fetch_more) — as
defaulted methods (see dnd_types).
Chart data follows the same shape: ChartModel<T> is the reactive,
multi-series primary model (mirroring ListModel/TreeModel), with
ChartWindow<T> / ChartAggregate<T> streaming/rollup projections
and ChartSelection for point-level selection.
Re-exports§
pub use chart_aggregate::ChartAggregate;pub use chart_aggregate::ChartAggregateFn;pub use chart_change::ChartChange;pub use chart_change::SeriesId;pub use chart_model::ChartDatum;pub use chart_model::ChartModel;pub use chart_model::ChartSeries;pub use chart_model::SeriesView;pub use chart_selection::ChartSelection;pub use chart_window::ChartWindow;pub use check_state::CheckState;pub use checked_model::CheckedModel;pub use data_change::DataChange;pub use data_change::map_index_after_move;pub use dnd_types::DragEligibility;pub use dnd_types::DragSource;pub use dnd_types::DropCommit;pub use dnd_types::DropPosition;pub use dnd_types::DropQuery;pub use dnd_types::DropResponse;pub use dnd_types::ItemKey;pub use dnd_types::RowState;pub use keyed_selection_model::KeyedSelectionModel;pub use keyed_tree_checked_model::KeyedTreeCheckedModel;pub use list_data_source::ListDataSource;pub use list_model::ListModel;pub use selection_model::SelectionMode;pub use selection_model::SelectionModel;pub use series_pattern::SeriesHatch;pub use series_pattern::SeriesMarker;pub use series_pattern::SeriesPattern;pub use sort_filter_list_model::SortDirection;pub use sort_filter_list_model::SortFilterListModel;pub use sort_filter_tree_model::SortFilterTreeModel;pub use sort_filter_tree_model::TreeFilterMode;pub use tree_change::NodeId;pub use tree_change::TreeChange;pub use tree_checked_model::AggregateMode;pub use tree_checked_model::TreeCheckedModel;pub use tree_data_slice::TreeDataSlice;pub use tree_data_slice::TreeRow;pub use tree_data_source::FlatEntry;pub use tree_data_source::TreeDataSource;pub use tree_model::TreeModel;pub use tree_row_filter::TreeRowFilter;pub use tree_slice::TreeSlice;pub use tree_slice::TreeSliceHandle;
Modules§
- chart_
aggregate ChartAggregate<T>— a bucket/rollup projection over acrate::ChartModel.- chart_
change - ChartChange — change notifications and stable series identifiers for chart collections.
- chart_
model ChartModel<T>— concrete reactive multi-series chart data model.- chart_
selection ChartSelection— point-level selection state for chart widgets.- chart_
window ChartWindow<T>— a “last N points per series” streaming projection over acrate::ChartModel.- check_
state CheckState— tri-state checkbox value shared by the data layer and widgets.- checked_
model CheckedModel— per-row checkbox state for flat collection widgets.- data_
change DataChange— change notifications for flat collections.- debug_
registry debug_registry— opt-in registry of named data models for the Teksilo inspector.- dnd_
types - Shared capability types for the data-source drag-and-drop + lazy protocol.
- keyed_
selection_ model KeyedSelectionModel<K>— identity-based selection for collection widgets.- keyed_
tree_ checked_ model KeyedTreeCheckedModel<K>— per-node checkbox state for a tree keyed by a stable domain id, with optional descendant→ancestor tristate aggregation.- list_
data_ source ListDataSource— read-and-command interface for a flat collection behind aListView/TableView.- list_
model ListModel<T>— concrete reactive list backed by aVec<T>.- selection_
model - SelectionModel — index-based selection state for collection widgets.
- series_
pattern SeriesPattern— the non-colour channel that identifies a chart series.- sort_
filter_ list_ model - Composable sort + filter projection over a flat list source.
- sort_
filter_ tree_ model - Composable sort + filter projection over a hierarchical tree.
- tree_
change - TreeChange — change notifications and stable node identifiers for tree collections.
- tree_
checked_ model TreeCheckedModel— per-node checkbox state for a tree, with optional descendant→ancestor tristate aggregation.- tree_
data_ slice TreeDataSlice— the reusableTreeDataSourceengine for an external, indent-ordered tree (a Qleany entity store, a database, a virtual filesystem) that is NOT mirrored into aTreeModel.- tree_
data_ source TreeDataSource— read-and-command interface for hierarchical data behind aTreeView/TreeTableView.- tree_
model TreeModel— concrete reactive tree with shared, cloneable handles.- tree_
row_ filter TreeRowFilter— sort + tree-aware filter over aTreeRowstream.- tree_
slice TreeSlice— per-view flattened projection of aTreeModel.