ParseInput

Trait ParseInput 

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

Show 18 methods // Required methods fn parse_chunk<'a, const N: usize>(&mut self) -> Result<&'a [u8; N]> where Self: 'a; fn parse_n(&mut self, n: usize) -> Result<Self::Data>; fn parse_until_zero(&mut self) -> Result<Self::Data>; fn reparse<T: Parse<Self>>(&mut self, data: Self::Data) -> Result<T>; fn parse_all(self) -> Result<Self::Data>; fn empty(self) -> Result<()>; fn non_empty(self) -> Result<Option<Self>>; // Provided methods fn parse_n_compare( &mut self, n: usize, c: &[u8], ) -> Result<Option<Self::Data>> { ... } fn parse_ahead<T: Parse<Self>>(&mut self, n: usize) -> Result<T> { ... } fn parse_zero_terminated<T: Parse<Self>>(&mut self) -> Result<T> { ... } fn parse_compare<T: Parse<Self>>( &mut self, n: usize, 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>> { ... }
}

Required Associated Types§

Source

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

Required Methods§

Source

fn parse_chunk<'a, const N: usize>(&mut self) -> Result<&'a [u8; N]>
where Self: 'a,

Source

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

Source

fn parse_until_zero(&mut self) -> Result<Self::Data>

Source

fn reparse<T: Parse<Self>>(&mut self, data: Self::Data) -> Result<T>

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_n_compare(&mut self, n: usize, c: &[u8]) -> Result<Option<Self::Data>>

Source

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

Source

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

Source

fn parse_compare<T: Parse<Self>>( &mut self, n: usize, 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>>

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 = &'d [u8]

Source§

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

Source§

type Data = &'d [u8]