Skip to main content

ferroui_dynamic_data/kernel/
mod.rs

1//! The kernel of DynamicData (`DynamicData/Kernel`): the extensions of `Option<T>` (upstream's
2//! `Optional<T>`) and of its sequences, the status of a connection, the error of an item, the
3//! pairs of an item with its index or a value, and the helpers of sequences and schedulers.
4//!
5//! Upstream's `Optional<T>` is Rust's `Option<T>` (docs/porting/reactive.md, section 5.4), so
6//! `Optional.cs` itself has no counterpart; `ReferenceEqualityComparer` is `Rc::ptr_eq`,
7//! `ReadOnlyCollectionLight` is `Vec<T>`, `EnumerableIList`/`EnumeratorIList`/`IEnumerableIList`
8//! are the slices and `Vec`s of Rust, `ISupportsCapacity` is `Vec::with_capacity`, and
9//! `ParallelEx` (PLINQ) is not ported.
10
11mod connection_status;
12mod enumerable_ex;
13mod error;
14mod internal_ex;
15mod item_with_index;
16mod item_with_value;
17mod option_else;
18mod option_extensions;
19mod option_observable_extensions;
20
21pub use connection_status::ConnectionStatus;
22pub use enumerable_ex::{duplicates, index_of_many, index_of_many_with, with_index};
23pub use error::Error;
24pub(crate) use internal_ex::{dotnet_binary_search, return_with};
25pub use internal_ex::{retry_with_back_off, schedule_recurring_action, schedule_recurring_action_with, to_unit};
26pub use item_with_index::ItemWithIndex;
27pub use item_with_value::ItemWithValue;
28pub use option_else::OptionElse;
29pub use option_extensions::{first_or_optional, lookup, remove_if_contained, select_values, OptionExtensions};
30pub use option_observable_extensions::OptionObservableExtensions;