1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#![crate_name = "bytes"] /// A trait for objects that provide random and sequential access to bytes. pub trait Buf { fn remaining(&self) -> usize; fn bytes<'a>(&'a self) -> &'a [u8]; fn advance(&mut self, cnt: usize); fn has_remaining(&self) -> bool { self.remaining() > 0 } } pub trait MutBuf : Buf { fn mut_bytes<'a>(&'a mut self) -> &'a mut [u8]; }