Pigeon

What's this?

A crate for efficient packing and unpacking of big-endian binary data.

It's used in tinytown for its networking code.

Can I see an example?

```rust use { pigeon::{ Writer, Reader, Target, Unpack, Pack, ShortStr, WriteResult, ReadResult, }, };

pub struct Animal { pub position: (f32, f32, f32), pub fluffy: bool, pub name: String, pub weight: f32, }

impl Pack for Animal { fn pack(&self, writer: &mut Writer) -> WriteResult<()> { writer.write(self.position)?; writer.write(self.fluffy)?; writer.write(ShortStr(&self.name))?; writer.write(self.weight)?; Ok(()) } }

impl<'a> Unpack<'a> for Animal { fn unpack(reader: &mut Reader<'a>) -> ReadResult { let position = reader.read()?; let fluffy = reader.read()?; let ShortStr(name) = reader.read()?; let weight = reader.read()?; Ok(Animal { position, fluffy, name: name.to_owned(), weight, }) } } ```

What license is it under?

AGPLv3 or later