Techern-archived / Varint-rs

Variable-length integer implementation in Rust
Apache License 2.0
7 stars 2 forks source link

Varint-rs

[API Documentation]

Variable-length integer implementation in Rust

Build Status Crates.io Coverage Status

Notes for 0.9

List of feature flags

Examples

extern crate varint;
use varint::{ VarintRead, VarintWrite }; //Using IO-Operations? Replace with VarintReader and VarintWriter, the functions are the same

use std::io::Cursor; //Currently supports Cursor<Vec<u8>> and TcpStream, but should be okay to implement in any Read/Write trait

let mut vector = Cursor::new(vec![0u8; 0]);

assert!(vector.write_signed_varint_32(2346784).is_ok()); //You can check this however you like. Try! could work. I'll check it out in Netherrack and update this by 1.0

//Do whatever you need to do.
vector.set_position(0); //If you're using a TcpStream, you'd probably switch sides and into a different codebase. This is just a quick example before I fall asleep :)

assert_eq!(2346784, vector.read_signed_varint_32().unwrap()); //You could also use try! here. Again, I'll test it in a real world project and update later

License

Licensed under either of

at your option.

Contribution

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.