mod de;
mod error;
mod number;
mod ser;
mod value;
pub use de::Deserializer;
pub use de::from_str;
pub use error::Error;
pub use number::Number;
pub use ser::Serializer;
pub use ser::to_string;
pub use value::Value;
pub use value::from_value;
pub type Result<T> = std::result::Result<T, Error>;
#[cfg(test)]
mod test {
use serde::{Deserialize, Serialize};
use super::*;
#[derive(Serialize, Deserialize)]
struct SomeStruct {
a: i32,
b: String,
c: Vec<i32>,
}
#[test]
fn printing_rison() {
let some_struct = SomeStruct {
a: 1,
b: "!!".to_string(),
c: vec![1, 2, 3],
};
let string = crate::to_string(&some_struct).unwrap();
println!("{string}");
}
#[test]
fn parsing_rison() {
let string = "(a:1,b:'!!',c:!(1,2,3))";
let some_struct: SomeStruct = crate::from_str(string).unwrap();
assert_eq!(some_struct.a, 1);
assert_eq!(some_struct.b, "!");
assert_eq!(some_struct.c, vec![1, 2, 3]);
}
}