Skip to main content

ParseInput

Trait ParseInput 

Source
pub trait ParseInput: Sized {
    type Data: AsRef<[u8]> + Deref<Target = [u8]> + Into<Vec<u8>>;

Show 24 methods // Required methods fn push_front(&mut self, data: impl Into<Vec<u8>>) -> Result<()>; fn read(&mut self, data: &mut [u8]) -> Result<()>; fn split_n(&mut self, n: usize) -> Result<Self>; fn skip_n(&mut self, n: usize) -> Result<()>; fn find_zero(&mut self) -> Result<usize>; fn parse_n_ahead(&mut self, n: usize) -> Result<Vec<u8>>; fn compare_ahead(&mut self, c: &[u8]) -> Result<bool>; fn parse_all(self) -> Result<Self::Data>; fn empty(self) -> Result<()>; fn non_empty(self) -> Result<Option<Self>>; // Provided methods fn parse_chunk<const N: usize>(&mut self) -> Result<[u8; N]> { ... } fn split_parse<T: Parse<Self>>(&mut self, n: usize) -> Result<T> { ... } fn parse_zero_terminated<T: Parse<Self>>(&mut self) -> Result<(Vec<u8>, T)> { ... } fn parse_compare<T: Parse<Self>>(&mut self, c: &[u8]) -> Result<Option<T>> { ... } fn consume(self, f: impl FnMut(&mut Self) -> Result<()>) -> Result<()> { ... } fn parse_collect<T: ParseInline<Self>, B: FromIterator<T>>( self, ) -> Result<B> { ... } fn collect<T, B: FromIterator<T>>( self, f: impl FnMut(&mut Self) -> Result<T>, ) -> Result<B> { ... } fn iter<T>( self, f: impl FnMut(&mut Self) -> Result<T>, ) -> impl Iterator<Item = Result<T>> { ... } fn parse_inline<T: ParseInline<Self>>(&mut self) -> Result<T> { ... } fn parse<T: Parse<Self>>(self) -> Result<T> { ... } fn parse_vec<T: ParseInline<Self>>(self) -> Result<Vec<T>> { ... } fn parse_vec_n<T: ParseInline<Self>>(&mut self, n: usize) -> Result<Vec<T>> { ... } fn parse_array<T: ParseInline<Self>, const N: usize>( &mut self, ) -> Result<[T; N]> { ... } fn parse_generic_array<T: ParseInline<Self>, N: ArrayLength>( &mut self, ) -> Result<GenericArray<T, N>> { ... }
}

Required Associated Types§

Source

type Data: AsRef<[u8]> + Deref<Target = [u8]> + Into<Vec<u8>>

Required Methods§

Source

fn push_front(&mut self, data: impl Into<Vec<u8>>) -> Result<()>

Source

fn read(&mut self, data: &mut [u8]) -> Result<()>

Source

fn split_n(&mut self, n: usize) -> Result<Self>

Source

fn skip_n(&mut self, n: usize) -> Result<()>

Source

fn find_zero(&mut self) -> Result<usize>

Source

fn parse_n_ahead(&mut self, n: usize) -> Result<Vec<u8>>

Source

fn compare_ahead(&mut self, c: &[u8]) -> Result<bool>

Source

fn parse_all(self) -> Result<Self::Data>

Source

fn empty(self) -> Result<()>

Source

fn non_empty(self) -> Result<Option<Self>>

Provided Methods§

Source

fn parse_chunk<const N: usize>(&mut self) -> Result<[u8; N]>

Source

fn split_parse<T: Parse<Self>>(&mut self, n: usize) -> Result<T>

Source

fn parse_zero_terminated<T: Parse<Self>>(&mut self) -> Result<(Vec<u8>, T)>

Source

fn parse_compare<T: Parse<Self>>(&mut self, c: &[u8]) -> Result<Option<T>>

Source

fn consume(self, f: impl FnMut(&mut Self) -> Result<()>) -> Result<()>

Source

fn parse_collect<T: ParseInline<Self>, B: FromIterator<T>>(self) -> Result<B>

Source

fn collect<T, B: FromIterator<T>>( self, f: impl FnMut(&mut Self) -> Result<T>, ) -> Result<B>

Source

fn iter<T>( self, f: impl FnMut(&mut Self) -> Result<T>, ) -> impl Iterator<Item = Result<T>>

Source

fn parse_inline<T: ParseInline<Self>>(&mut self) -> Result<T>

Source

fn parse<T: Parse<Self>>(self) -> Result<T>

Source

fn parse_vec<T: ParseInline<Self>>(self) -> Result<Vec<T>>

Source

fn parse_vec_n<T: ParseInline<Self>>(&mut self, n: usize) -> Result<Vec<T>>

Source

fn parse_array<T: ParseInline<Self>, const N: usize>( &mut self, ) -> Result<[T; N]>

Source

fn parse_generic_array<T: ParseInline<Self>, N: ArrayLength>( &mut self, ) -> Result<GenericArray<T, N>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'d> ParseInput for ReflessInput<'d>

Source§

type Data = Cow<'d, [u8]>

Source§

impl<'d, Extra: Clone> ParseInput for Input<'d, Extra>

Source§

type Data = Cow<'d, [u8]>