diff --git a/README.md b/README.md index b531859..3df18f8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,33 @@ # Binary Encoder / Decoder -A compact encoder / decoder pair that uses an binary encoding scheme similar -to how the data is laid out in memory. +A compact encoder / decoder pair that uses an binary zero-fluff encoding scheme. +The size of the encoded object will be the same or smaller than the size that +the object takes up in memory in a running Rust program. + +```rust +extern crate binary_encode; +extern crate serialize; + +#[deriving(Encodable, Decodable, PartialEq)] +struct Entity { + x: f32, + y: f32, +} + +#[deriving(Encodable, Decodable, PartialEq)] +struct World { + entities: Vec +} + +fn main() { + let world = World { + entities: vec![Entity {x: 0.0, y: 4.0}, Entity {x: 10.0, y: 20.5}] + }; + + let encoded: Vec = binary_encode::encode(&world).unwrap(); + let decoded: World = binary_encode::decode(encoded).unwrap(); + + assert!(world == decoded); +} + +``` diff --git a/readme.dev.md b/readme.dev.md new file mode 100644 index 0000000..13654fa --- /dev/null +++ b/readme.dev.md @@ -0,0 +1,7 @@ +# Binary Encoder / Decoder + +A compact encoder / decoder pair that uses an binary zero-fluff encoding scheme. +The size of the encoded object will be the same or smaller than the size that +the object takes up in memory in a running Rust program. + +^code(./examples/basic.rs)