bugle 0.0.1

simple signal system
Documentation
use crate::Receiver;

pub trait Mutable<'a, D>
where
    D: Clone + 'static,
{
    fn new(value: D) -> Self
    where
        D: Sized;
    fn get(&self) -> &D;
    fn set(&mut self, value: D);
    fn on_change<R>(&mut self, receiver: R)
    where
        R: Receiver<Changed<D>> + Send + 'a;
    //     fn change_map<F, T, R>(&mut self, func: F) -> R
    //     where
    //         F: Fn(&D) -> T + Send + 'static,
    //         R: Mutable<T>;
}
#[derive(Debug, Clone, Copy)]
pub struct Changed<D> {
    pub old: D,
    pub new: D,
}