The goal of this crate is to provide fast, simple and easy binary serialization.
```rust
extern crate speedy_derive; extern crate speedy;
use std::borrow::Cow; use speedy::{Readable, Writable, Endianness};
enum Enum { A, B, C, }
struct Struct< 'a > { number: u64, string: String, vector: Vec< u8 >, cow: Cow< 'a, [i64] >, float: f32, enumeration: Enum }
fn main() { let original = Struct { number: 0x12345678ABCDEF00, string: "A totally pointless string".to_owned(), vector: vec![ 1, 2, 3 ], cow: Cow::Borrowed( &[ 4, 5, 6 ] ), float: 3.1415, enumeration: Enum::C };
let endian = Endianness::LittleEndian;
let bytes = original.write_to_vec( endian ).unwrap();
let deserialized: Struct< 'static > =
Struct::read_from_buffer( endian, &bytes ).unwrap();
assert_eq!( original, deserialized );
} ```
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.