Skip to main content

ferroui_dynamic_data/
lib.rs

1//! ferroui-dynamic-data
2//!
3//! A port of DynamicData (reactivemarbles/DynamicData) on top of `ferroui-reactive`: change sets
4//! that describe the edits of a collection, observable caches (`SourceCache`, keyed) and lists
5//! (`SourceList`), and the operators that transform, filter, sort, group, join and bind them. It is
6//! single-threaded like the observables it is built on (docs/porting/reactive.md, sections 5.1 and
7//! 5.4).
8//!
9//! - [`cache`]: the keyed side (`Change<T, K>`, `ChangeSet<T, K>`, `ChangeAwareCache`, `SourceCache`, ...).
10//! - [`list`]: the side of positions (`list::Change<T>`, `list::ChangeSet<T>`, `ChangeAwareList`, ...).
11
12pub mod binding;
13pub mod cache;
14pub mod diagnostics;
15pub(crate) mod internal;
16pub mod list;
17
18pub use cache::{
19    Change, ChangeAwareCache, ChangeReason, ChangeSet, ICache, ICacheUpdater, IChangeSet, IConnectableCache, IObservableCache, IQuery, ISourceCache, ISourceUpdater,
20    ObservableCache, ObservableCacheEx, SourceCache,
21};
22
23#[cfg(test)]
24mod tests;
25mod as_disposable;
26pub use as_disposable::*;
27mod dynamic_data_options;
28pub use dynamic_data_options::*;
29mod enumerable_ex;
30pub use enumerable_ex::*;
31pub mod kernel;
32mod observable_items_ex;
33pub use observable_items_ex::*;
34pub mod aggregation;
35pub mod experimental;
36mod observable_change_set;
37pub use observable_change_set::*;
38mod as_async_disposable;
39pub use as_async_disposable::*;