Struct GenericReader

pub struct GenericReader<'a>(/* private field */);

A wrapper around a type-erased trait object that implements Read and Seek.

Trait Implementations

impl BufRead for GenericReader<'_>

fn fill_buf(&mut self) -> Result<&[u8]>
fn consume(&mut self, amt: usize)
fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize>
fn read_line(&mut self, buf: &mut String) -> Result<usize>

impl Read for GenericReader<'_>

fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>

impl Seek for GenericReader<'_>

fn seek(&mut self, pos: SeekFrom) -> Result<u64>
fn rewind(&mut self) -> Result<()>
fn stream_position(&mut self) -> Result<u64>

Auto Trait Implementations

impl<'a> !RefUnwindSafe for GenericReader<'a>

impl<'a> !Send for GenericReader<'a>

impl<'a> !Sync for GenericReader<'a>

impl<'a> !UnwindSafe for GenericReader<'a>

impl<'a> Freeze for GenericReader<'a>

impl<'a> Unpin for GenericReader<'a>

impl<'a> UnsafeUnpin for GenericReader<'a>

Blanket Implementations

impl<R> ReadBytesExt for GenericReader<'a> where R: Read + ?Sized,

impl<R> ReadEndian<[f32]> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut [f32]) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut [f32]) -> Result<(), Error>

impl<R> ReadEndian<[f64]> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut [f64]) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut [f64]) -> Result<(), Error>

impl<R> ReadEndian<[i128]> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut [i128]) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut [i128]) -> Result<(), Error>

impl<R> ReadEndian<[i16]> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut [i16]) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut [i16]) -> Result<(), Error>

impl<R> ReadEndian<[i32]> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut [i32]) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut [i32]) -> Result<(), Error>

impl<R> ReadEndian<[i64]> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut [i64]) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut [i64]) -> Result<(), Error>

impl<R> ReadEndian<[i8]> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut [i8]) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut [i8]) -> Result<(), Error>

impl<R> ReadEndian<[u128]> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut [u128]) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut [u128]) -> Result<(), Error>

impl<R> ReadEndian<[u16]> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut [u16]) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut [u16]) -> Result<(), Error>

impl<R> ReadEndian<[u32]> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut [u32]) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut [u32]) -> Result<(), Error>

impl<R> ReadEndian<[u64]> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut [u64]) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut [u64]) -> Result<(), Error>

impl<R> ReadEndian<[u8]> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut [u8]) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut [u8]) -> Result<(), Error>

impl<R> ReadEndian<f32> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut f32) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut f32) -> Result<(), Error>

impl<R> ReadEndian<f64> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut f64) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut f64) -> Result<(), Error>

impl<R> ReadEndian<i128> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut i128) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut i128) -> Result<(), Error>

impl<R> ReadEndian<i16> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut i16) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut i16) -> Result<(), Error>

impl<R> ReadEndian<i32> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut i32) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut i32) -> Result<(), Error>

impl<R> ReadEndian<i64> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut i64) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut i64) -> Result<(), Error>

impl<R> ReadEndian<i8> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut i8) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut i8) -> Result<(), Error>

impl<R> ReadEndian<u128> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut u128) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut u128) -> Result<(), Error>

impl<R> ReadEndian<u16> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut u16) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut u16) -> Result<(), Error>

impl<R> ReadEndian<u32> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut u32) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut u32) -> Result<(), Error>

impl<R> ReadEndian<u64> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut u64) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut u64) -> Result<(), Error>

impl<R> ReadEndian<u8> for GenericReader<'a> where R: Read,

fn read_from_little_endian_into(&mut self, value: &mut u8) -> Result<(), Error>
fn read_from_big_endian_into(&mut self, value: &mut u8) -> Result<(), Error>

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for GenericReader<'a> where ST: ?Sized, DT: ?Sized,

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for GenericReader<'a> where ST: ?Sized, DT: ?Sized,

impl<T> Any for GenericReader<'a> where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for GenericReader<'a> where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for GenericReader<'a> where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

impl<T> From<T> for GenericReader<'a>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> IntoEither for GenericReader<'a>

impl<T> Pointable for GenericReader<'a>

const ALIGN: usize = _;
type Init = T;
unsafe fn init(init: <T as Pointable>::Init) -> usize
unsafe fn deref<'a>(ptr: usize) -> &'a T
unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
unsafe fn drop(ptr: usize)

impl<T> Read<Exclusive, BecauseExclusive> for GenericReader<'a> where T: ?Sized,

impl<T> ZByteReaderTrait for GenericReader<'a> where T: BufRead + Seek,

fn read_byte_no_error(&mut self) -> u8
fn read_exact_bytes(&mut self, buf: &mut [u8]) -> Result<(), ZByteIoError>
fn read_bytes(&mut self, buf: &mut [u8]) -> Result<usize, ZByteIoError>
fn peek_bytes(&mut self, buf: &mut [u8]) -> Result<usize, ZByteIoError>
fn peek_exact_bytes(&mut self, buf: &mut [u8]) -> Result<(), ZByteIoError>
fn z_seek(&mut self, from: ZSeekFrom) -> Result<u64, ZByteIoError>
fn is_eof(&mut self) -> Result<bool, ZByteIoError>
fn z_position(&mut self) -> Result<u64, ZByteIoError>
fn read_remaining(&mut self, sink: &mut Vec<u8>) -> Result<usize, ZByteIoError>

impl<T, U> Into<U> for GenericReader<'a> where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom<U> for GenericReader<'a> where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for GenericReader<'a> where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>