varinteger 1.0.1

Rust module for encoding/decoding varints that doesn't do any IO. Inspired by the Node.js varint module
Documentation
# varinteger

Rust module for encoding/decoding [varints](https://developers.google.com/protocol-buffers/docs/encoding) that doesn't do any IO. Inspired by the Node.js [varint](https://github.com/chrisdickinson/varint) module. I mostly wrote this to learn more about Rust.

## Usage

``` rs
extern crate varinteger;

let mut buf = [0; 512];

// encode 1000 as a varint into buf. returns how many bytes it wrote
let bytes_encoded = varinteger::encode(1000, buf);

let mut value = 0 as u64;
let bytes_decoded = varinteger::decode(buf, &mut value);

println!("encoded and decoded {}", value);
```

## API

#### `encode(value: u64, buf: &mut [u8]) -> usize`

Encode a `u64` integer to the buffer. Returns how many bytes were encoded.

#### `encode_with_offset(value: u64, buf: &mut [u8], offset: usize) -> usize`

Encode a `u64` integer at a specific offset in the buffer. Returns how many bytes were encoded.

#### `length(value: u64) -> usize`

Returns how many bytes are needed to encode value.

#### `signed_encode(value: i64, buf: &mut [u8]) -> usize`

Encode a `i64` (signed) integer to the buffer. Returns how many bytes were encoded.

#### `signed_encode_with_offset(value: i64, buf: &mut [u8], offset: usize) -> usize`

Encode a `i64` (signed) integer at a specific offset in the buffer. Returns how many bytes were encoded.

#### `signed_length(value: i64) -> usize`

Returns how many bytes are needed to encode value.

## License

MIT