1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! ferroui-reactive
//!
//! A port of Rx.NET's System.Reactive (<https://github.com/dotnet/reactive>) to Rust: observable
//! sequences, their operators, the schedulers that decide when work runs, the disposables that end
//! subscriptions, and subjects. It depends on nothing of the user interface of FerroUI; the
//! interfaces it implements (`IObservable<T>`, `IObserver<T>`, `IDisposable`) are those of
//! `ferroui-system`, which the framework uses too, so the sequences of this crate bind to the
//! properties of controls as they are.
//!
//! The modules follow the namespaces of System.Reactive:
//!
//! - [`concurrency`]: `System.Reactive.Concurrency` (schedulers).
//! - [`disposables`]: `System.Reactive.Disposables`.
//! - [`subjects`]: `System.Reactive.Subjects`.
//! - [`linq`]: `System.Reactive.Linq` (the operators: [`Observable`] and [`ObservableExt`]).
//! - The root: `Notification<T>`, `Unit`, `TimeInterval<T>`, `Timestamped<T>`, the observers
//! (`Observer`, `AnonymousObserver<T>`, `ObserverBase<T>`), `ObservableBase<T>`.
//!
//! Everything is single-threaded and reference counted, as the object model of FerroUI is: a
//! sequence and its subscriptions live on the thread that created them, and the schedulers of the
//! crate run their work on that thread (`docs/porting/reactive.md`, section 5.1).
// The machinery of the operators; parts of it are used by the operator families as they are ported.
pub
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
/// The type of a notification without a value (`System.Reactive.Unit`): Rust's unit type.
pub type Unit = ;