Trait bytepack::Packer [] [src]

pub trait Packer {
    fn pack<T: Packed>(&mut self, t: T) -> Result<()>;
    fn pack_all<T: Packed>(&mut self, buf: &[T]) -> Result<()>;
}

Packer provides the std::io::Write API but for any type T implementing Packed. It does not perform any endianness conversion and thus always writes data using the system endianness.

Example

Example of writing a file containing a few float samples.

use std::fs::File;
use std::iter::repeat;

use bytepack::Packer;

fn write_samples(file: &str, samples: &Vec<f32>) {
    let mut file = File::create(file).unwrap();
    file.pack(samples.len() as u32).unwrap();
    file.pack_all(&samples[..]).unwrap();
}

Required Methods

Pack a single value of type T.

let mut file = File::create("test").unwrap();
file.pack(42f32).unwrap();

Pack all the values of type T from buf.

let mut file = File::create("test").unwrap();
let mut float_buffer = vec![666u16; 10];
file.pack_all(&mut float_buffer[..]).unwrap();

Implementors