//! Implements serialization, desrialization for UserStore use crate::lcc::{errors::DataError, traits::AutoEncoder, users::UserStore}; pub trait DiskMirror { fn to_disk(&self) -> Vec; fn from_disk(_: Vec) -> Result, DataError>; } impl DiskMirror for UserStore { fn to_disk(&self) -> Vec { self.encode().unwrap().into_bytes() } fn from_disk(vec: Vec) -> Result, DataError> { Self::decode(::std::str::from_utf8(vec.as_slice()).map_err(|_| DataError::FailedDecode)?) .map(|s| Box::new(s)) .map_err(|_| DataError::FailedDecode) } }