gaia-binary 0.1.1

Binary encoding and decoding for Gaia project
Documentation
use gaia_types::Result;
use std::io::{Read, Write};

/// Trait for defining how data is encoded in a binary stream.
pub trait BinaryFormat {
    /// Read a u16 value.
    fn read_u16<R: Read>(reader: &mut R) -> Result<u16>;
    /// Write a u16 value.
    fn write_u16<W: Write>(writer: &mut W, value: u16) -> Result<()>;

    /// Read a u32 value.
    fn read_u32<R: Read>(reader: &mut R) -> Result<u32>;
    /// Write a u32 value.
    fn write_u32<W: Write>(writer: &mut W, value: u32) -> Result<()>;

    /// Read a u64 value.
    fn read_u64<R: Read>(reader: &mut R) -> Result<u64>;
    /// Write a u64 value.
    fn write_u64<W: Write>(writer: &mut W, value: u64) -> Result<()>;

    /// Read an i16 value.
    fn read_i16<R: Read>(reader: &mut R) -> Result<i16>;
    /// Write an i16 value.
    fn write_i16<W: Write>(writer: &mut W, value: i16) -> Result<()>;

    /// Read an i32 value.
    fn read_i32<R: Read>(reader: &mut R) -> Result<i32>;
    /// Write an i32 value.
    fn write_i32<W: Write>(writer: &mut W, value: i32) -> Result<()>;

    /// Read an i64 value.
    fn read_i64<R: Read>(reader: &mut R) -> Result<i64>;
    /// Write an i64 value.
    fn write_i64<W: Write>(writer: &mut W, value: i64) -> Result<()>;

    /// Read an f32 value.
    fn read_f32<R: Read>(reader: &mut R) -> Result<f32>;
    /// Write an f32 value.
    fn write_f32<W: Write>(writer: &mut W, value: f32) -> Result<()>;

    /// Read an f64 value.
    fn read_f64<R: Read>(reader: &mut R) -> Result<f64>;
    /// Write an f64 value.
    fn write_f64<W: Write>(writer: &mut W, value: f64) -> Result<()>;
}