observable_rs/
lib.rs

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