use crate::{
CausalContext, CausalDotStore, Identifier, MvReg,
crdts::{
mvreg::MvRegValue,
snapshot::{SingleValueError, ToValue},
},
};
pub fn values(m: &MvReg) -> impl ExactSizeIterator<Item = &MvRegValue> {
m.values().into_iter()
}
pub fn value(m: &MvReg) -> Result<&MvRegValue, Box<SingleValueError<MvRegValue>>> {
m.value()
}
pub fn write(
v: MvRegValue,
) -> impl FnMut(&MvReg, &CausalContext, Identifier) -> CausalDotStore<MvReg> {
move |m, cc, id| m.write(v.clone(), cc, id)
}
pub fn clear() -> impl Fn(&MvReg, &CausalContext, Identifier) -> CausalDotStore<MvReg> {
move |m, _cc, _id| m.clear()
}