Skip to main content

ferroui_base/data/model/
mod.rs

1//! The model layer: what bindings need from data that is not part of the
2//! class hierarchy (view models, plain data, collections, commands).
3//!
4//! The managed runtime discovers these capabilities through reflection and
5//! interface casts on arbitrary objects. Here a model type states them once:
6//! it implements the notification traits it supports and declares its
7//! bindable properties and methods (see [`ferro_model!`](crate::ferro_model)
8//! and [`ModelTypeBuilder`]). Compiled bindings do not need the declaration:
9//! they are built from typed accessor closures.
10
11mod i_bindable_indexer;
12mod i_notify_collection_changed;
13mod i_notify_data_error_info;
14mod model_type;
15
16pub use ferroui_system::events::Event;
17pub use crate::input::ICommand;
18pub use i_bindable_indexer::{BindableArray, BindableDictionary, IBindableArray, IBindableIndexer};
19pub use i_notify_collection_changed::{BindableList, CollectionChange, IBindableList, INotifyCollectionChanged};
20pub use i_notify_data_error_info::INotifyDataErrorInfo;
21pub use ferroui_system::component_model::INotifyPropertyChanged;
22pub use model_type::{Model, ModelMethod, ModelType, ModelTypeBuilder, ModelTypes};