[−][src]Trait edn_rs::Deserialize
public trait to be used to Deserialize
structs
Example:
use crate::edn_rs::{Edn, EdnError, Deserialize}; #[derive(Debug, PartialEq)] struct Person { name: String, age: usize, } impl Deserialize for Person { fn deserialize(edn: &Edn) -> Result<Self, EdnError> { Ok(Self { name: Deserialize::deserialize(&edn[":name"])?, age: Deserialize::deserialize(&edn[":age"])?, }) } } let edn_str = "{:name \"rose\" :age 66 }"; let person: Person = edn_rs::from_str(edn_str).unwrap(); assert_eq!( person, Person { name: "rose".to_string(), age: 66, } ); println!("{:?}", person); // Person { name: "rose", age: 66 } let bad_edn_str = "{:name \"rose\" :age \"some text\" }"; let person: Result<Person, EdnError> = edn_rs::from_str(bad_edn_str); assert_eq!( person, Err(EdnError::Deserialize( "couldn't convert `some text` into `uint`".to_string() )) );
Required methods
fn deserialize(edn: &Edn) -> Result<Self, Error>
Implementations on Foreign Types
impl Deserialize for f32
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for f64
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for isize
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for i8
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for i16
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for i32
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for i64
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for usize
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for u8
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for u16
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for u32
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for u64
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for bool
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for String
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl Deserialize for char
[src]
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl<T> Deserialize for Vec<T> where
T: Deserialize,
[src]
T: Deserialize,
fn deserialize(edn: &Edn) -> Result<Self, Error>
[src]
impl<T> Deserialize for Option<T> where
T: Deserialize,
[src]
T: Deserialize,