Trait bytepack::Packer
[−]
[src]
pub trait Packer { fn pack<T: Packed>(&mut self, t: T) -> Result<()>; fn pack_ref<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
fn pack<T: Packed>(&mut self, t: T) -> Result<()>
Pack a single value of type T
.
let mut file = File::create("test").unwrap(); file.pack(42f32).unwrap();
fn pack_ref<T: Packed>(&mut self, t: &T) -> Result<()>
Pack a single value of type T
passed by reference.
let mut file = File::create("test").unwrap(); file.pack(42f32).unwrap();
fn pack_all<T: Packed>(&mut self, buf: &[T]) -> Result<()>
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
impl<W> Packer for W where
W: Write,