pub mod serialization {
pub use serde::{Deserialize, Deserializer, Serialize, Serializer};
pub use serde_json::{from_str, to_string, to_string_pretty};
#[macro_export]
macro_rules! rumtk_serialize {
( $object:expr ) => {{
use $crate::json::serialization::{to_string, to_string_pretty};
use $crate::strings::format_compact;
match to_string(&$object) {
Ok(s) => Ok(s),
Err(e) => Err(format_compact!(
"Failed to serialize object because of {}",
e
)),
}
}};
( $object:expr, $pretty:expr ) => {{
use $crate::json::serialization::{to_string, to_string_pretty};
use $crate::strings::format_compact;
match $pretty {
true => match to_string_pretty(&$object) {
Ok(s) => Ok(s),
Err(e) => Err(format_compact!(
"Failed to serialize object because of {}",
e
)),
},
false => match to_string(&$object) {
Ok(s) => Ok(s),
Err(e) => Err(format_compact!(
"Failed to serialize object because of {}",
e
)),
},
}
}};
}
#[macro_export]
macro_rules! rumtk_deserialize {
( $string:expr ) => {{
use $crate::json::serialization::from_str;
from_str(&$string)
}};
}
}