use std::ffi::CString; use automerge as am; /// \class AMresult /// \brief A container of result codes, messages and values. pub enum AMresult { Ok, ObjId(am::ObjId), Values(Vec), Changes(Vec), Error(CString), } impl AMresult { pub (crate) fn err(s: &str) -> Self { AMresult::Error(CString::new(s).unwrap()) } } impl From, am::AutomergeError>> for AMresult { fn from(maybe: Result, am::AutomergeError>) -> Self { match maybe { Ok(None) => AMresult::Ok, Ok(Some(obj)) => AMresult::ObjId(obj), Err(e) => AMresult::Error(CString::new(e.to_string()).unwrap()), } } }