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;
}