cbordata 0.6.0

CBOR processing package for document databases and distributed applications
Documentation
//! Using cbordata macros

extern crate cbordata;

use cbordata::{Cbor, Cborize, FromCbor, IntoCbor};

#[derive(Cborize, Default, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
#[allow(non_snake_case)]
struct Parent {
    field1: u8,
    field2: i8,
    field3: u16,
    field4: i16,
    field5: u32,
    field6: i32,
    field7: u64,
    field8: i64,
    field11: bool,
    field12: usize,
    field13: isize,
    field14: String,
    field15: Vec<u8>,
}

impl Parent {
    const ID: &'static str = "floats";
}

#[derive(Cborize, Default, Clone, Debug)]
#[allow(non_snake_case)]
struct Floats {
    field1: f32,
    field2: f64,
}

impl Floats {
    const ID: &'static str = "floats";
}

fn main() {
    let p_ref = Parent {
        field1: 10,
        field2: -10,
        field3: 100,
        field4: -100,
        field5: 1000,
        field6: -1000,
        field7: 10000,
        field8: -10000,
        field11: true,
        field12: 100,
        field13: 102,
        field14: "hello world".to_string(),
        field15: vec![1, 2, 3, 4],
    };

    let val: Cbor = p_ref.clone().into_cbor().unwrap();
    let p: Parent = Parent::from_cbor(val).unwrap();
    println!("{:?}", p);
    println!("{:?}", p_ref);
    assert_eq!(p_ref, p);
}