pub struct BufferedIo { /* private fields */ }Expand description
Buffered I/O wrapper providing typed read/write operations.
Wraps an IoContext and adds convenience methods for reading
integers in specific byte orders.
Implementations§
Source§impl BufferedIo
impl BufferedIo
pub fn new(inner: Box<dyn IoContext>) -> Self
Sourcepub fn take_inner(&mut self) -> Box<dyn IoContext>
pub fn take_inner(&mut self) -> Box<dyn IoContext>
Transfer ownership of the inner IoContext out of this BufferedIo. After this call, the BufferedIo is backed by a dead stub — all subsequent I/O operations will return errors.
Sourcepub fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
pub fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
Read exactly buf.len() bytes into buf.
Sourcepub fn read_u16le(&mut self) -> Result<u16>
pub fn read_u16le(&mut self) -> Result<u16>
Read a little-endian u16.
Sourcepub fn read_u16be(&mut self) -> Result<u16>
pub fn read_u16be(&mut self) -> Result<u16>
Read a big-endian u16.
Sourcepub fn read_u32le(&mut self) -> Result<u32>
pub fn read_u32le(&mut self) -> Result<u32>
Read a little-endian u32.
Sourcepub fn read_u32be(&mut self) -> Result<u32>
pub fn read_u32be(&mut self) -> Result<u32>
Read a big-endian u32.
Sourcepub fn read_i32le(&mut self) -> Result<i32>
pub fn read_i32le(&mut self) -> Result<i32>
Read a little-endian i32.
Sourcepub fn read_u64le(&mut self) -> Result<u64>
pub fn read_u64le(&mut self) -> Result<u64>
Read a little-endian u64.
Sourcepub fn read_u64be(&mut self) -> Result<u64>
pub fn read_u64be(&mut self) -> Result<u64>
Read a big-endian u64.
Sourcepub fn read_bytes(&mut self, len: usize) -> Result<Vec<u8>>
pub fn read_bytes(&mut self, len: usize) -> Result<Vec<u8>>
Read raw bytes of specified length.
Sourcepub fn read_up_to(&mut self, len: usize) -> Result<Vec<u8>>
pub fn read_up_to(&mut self, len: usize) -> Result<Vec<u8>>
Read up to len bytes, returning whatever is available.
Returns empty Vec only at true EOF. Matches FFmpeg’s av_get_packet()
behavior of returning partial data when less than len bytes remain.
Sourcepub fn is_seekable(&self) -> bool
pub fn is_seekable(&self) -> bool
Whether the underlying I/O is seekable.
Sourcepub fn write_u16le(&mut self, v: u16) -> Result<()>
pub fn write_u16le(&mut self, v: u16) -> Result<()>
Write a little-endian u16.
Sourcepub fn write_u16be(&mut self, v: u16) -> Result<()>
pub fn write_u16be(&mut self, v: u16) -> Result<()>
Write a big-endian u16.
Sourcepub fn write_u32le(&mut self, v: u32) -> Result<()>
pub fn write_u32le(&mut self, v: u32) -> Result<()>
Write a little-endian u32.
Sourcepub fn write_u32be(&mut self, v: u32) -> Result<()>
pub fn write_u32be(&mut self, v: u32) -> Result<()>
Write a big-endian u32.
Sourcepub fn write_u64le(&mut self, v: u64) -> Result<()>
pub fn write_u64le(&mut self, v: u64) -> Result<()>
Write a little-endian u64.
Sourcepub fn write_bytes(&mut self, data: &[u8]) -> Result<()>
pub fn write_bytes(&mut self, data: &[u8]) -> Result<()>
Write raw bytes.