1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
//! Observables in rust //! ## Example //! ``` //! //! ``` /// Public API. mod observable; // Reexport of the public API. #[doc(inline)] pub use crate::observable::*; use std::cell::Ref; pub trait Set<T>: Sized { fn set(&self, value: T); } pub trait Observe<T>: Sized { fn get(&self) -> Ref<T>; fn subscribe(&self, cb: Box<dyn Fn()>) -> ListenerHandle; fn once(&self, cb: Box<dyn Fn()>) -> ListenerHandle; fn unsubscribe(&self, handle: ListenerHandle) -> bool; }