pub use std::sync::Arc as Share;
pub use thiserror::Error;
pub trait Mut : core::ops::Deref {
fn mutate(&mut self) -> &mut Self::Target;
}
impl<T: Clone> Mut for std::rc::Rc<T> {
fn mutate(&mut self) -> &mut Self::Target {
std::rc::Rc::make_mut(self)
}
}
impl<T: Clone> Mut for Share<T> {
fn mutate(&mut self) -> &mut Self::Target {
Share::make_mut(self)
}
}