Struct lzss::SliceWriterExact
source · pub struct SliceWriterExact<'a> { /* private fields */ }
Expand description
Write into a slice which has the exact size of the result.
let mut buf = [0; 2];
// underfull
let mut output = SliceWriterExact::new(&mut buf);
assert_eq!(output.write(1), Ok(()));
assert_eq!(output.finish(), Err(SliceWriteError));
// full
let mut output = SliceWriterExact::new(&mut buf);
assert_eq!(output.write(1), Ok(()));
assert_eq!(output.write(1), Ok(()));
assert_eq!(output.finish(), Ok(()));
// overflow
let mut output = SliceWriterExact::new(&mut buf);
assert_eq!(output.write(1), Ok(()));
assert_eq!(output.write(1), Ok(()));
assert_eq!(output.write(1), Err(SliceWriteError));
Implementations§
source§impl<'a> SliceWriterExact<'a>
impl<'a> SliceWriterExact<'a>
sourcepub fn new(data: &'a mut [u8]) -> SliceWriterExact<'a>
pub fn new(data: &'a mut [u8]) -> SliceWriterExact<'a>
Constructs a new writer.
Trait Implementations§
source§impl<'a> Write for SliceWriterExact<'a>
impl<'a> Write for SliceWriterExact<'a>
§type Error = SliceWriteError
type Error = SliceWriteError
In case of an under- or overflow this error is returned.
Auto Trait Implementations§
impl<'a> RefUnwindSafe for SliceWriterExact<'a>
impl<'a> Send for SliceWriterExact<'a>
impl<'a> Sync for SliceWriterExact<'a>
impl<'a> Unpin for SliceWriterExact<'a>
impl<'a> !UnwindSafe for SliceWriterExact<'a>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more