Files
otw/src/streams.rs
Numbers ebf6bde22d init
2025-05-29 03:45:41 +02:00

34 lines
743 B
Rust

use crate::{MalformedData, Reader, Writer};
impl Reader for &[u8] {
#[inline(always)]
fn read(&mut self, bytes: &mut [u8]) -> e::Result<()> {
if bytes.len() > self.len() { Err(MalformedData)? }
unsafe {
core::ptr::copy_nonoverlapping(
self.as_ptr(),
bytes.as_mut_ptr(),
bytes.len()
)
}
*self = &self[bytes.len()..];
Ok(())
}
#[inline(always)]
fn remainder_hint(&self) -> usize {
self.len()
}
}
#[cfg(feature = "alloc")]
impl Writer for alloc::vec::Vec<u8> {
fn write(&mut self, bytes: &[u8]) -> e::Result<()> {
self.extend_from_slice(bytes);
Ok(())
}
}