Inpt

Trait Inpt 

Source
pub trait Inpt<'s>: Sized + 's {
    // Required method
    fn step(
        text: &'s str,
        end: bool,
        trimmed: CharClass,
        guard: &mut RecursionGuard,
    ) -> InptStep<'s, Self>;

    // Provided method
    fn default_trim(inherited: CharClass) -> CharClass { ... }
}
Expand description

The core parsing trait.

Although this can be implemented manually without too much work, it is best to derive it as described in the top-level documentation.

Required Methods§

Source

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Consume a token of this type from the given text if possible, returning an error if not. If end is false, all remaining text should also be returned. Otherwise the text should be consumed entirely. All text must be trimmed with the given CharClass (typically but not always returned from Inpt::default_trim) before being passed to this function.

Consider deriving Inpt or calling crate::inpt() instead of using this directly.

Provided Methods§

Source

fn default_trim(inherited: CharClass) -> CharClass

Determine the class of characters which this type would like trimmed off of any text before parsing. This is inherited from the parent type if not otherwise defined.

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.

Implementations on Foreign Types§

Source§

impl<'s> Inpt<'s> for &'s str

Source§

fn step( text: &'s str, _end: bool, _trimmed: CharClass, _guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

impl<'s> Inpt<'s> for char

Source§

fn step( text: &'s str, end: bool, _trimmed: CharClass, _guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

impl<'s> Inpt<'s> for f32

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for f64

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for i8

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for i16

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for i32

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for i64

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for isize

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for u8

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for u16

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for u32

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for u64

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for ()

Source§

fn step( text: &'s str, end: bool, _trimmed: CharClass, _guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(_inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for usize

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s> Inpt<'s> for String

Source§

fn step( text: &'s str, _end: bool, _trimmed: CharClass, _guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

impl<'s, A: Inpt<'s>, B: Inpt<'s>> Inpt<'s> for (A, B)

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

impl<'s, A: Inpt<'s>, B: Inpt<'s>, C: Inpt<'s>> Inpt<'s> for (A, B, C)

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

impl<'s, A: Inpt<'s>, B: Inpt<'s>, C: Inpt<'s>, D: Inpt<'s>> Inpt<'s> for (A, B, C, D)

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

impl<'s, A: Inpt<'s>, B: Inpt<'s>, C: Inpt<'s>, D: Inpt<'s>, E: Inpt<'s>> Inpt<'s> for (A, B, C, D, E)

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

impl<'s, A: Inpt<'s>, B: Inpt<'s>, C: Inpt<'s>, D: Inpt<'s>, E: Inpt<'s>, F: Inpt<'s>> Inpt<'s> for (A, B, C, D, E, F)

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

impl<'s, A: Inpt<'s>, B: Inpt<'s>, C: Inpt<'s>, D: Inpt<'s>, E: Inpt<'s>, F: Inpt<'s>, G: Inpt<'s>> Inpt<'s> for (A, B, C, D, E, F, G)

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

impl<'s, T: Inpt<'s> + Ord> Inpt<'s> for BTreeSet<T>

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s, T: Inpt<'s> + Hash + Eq> Inpt<'s> for HashSet<T>

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s, T: Inpt<'s>> Inpt<'s> for Box<T>

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s, T: Inpt<'s>> Inpt<'s> for Rc<T>

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s, T: Inpt<'s>> Inpt<'s> for Arc<T>

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s, T: Inpt<'s>> Inpt<'s> for Vec<T>

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Source§

impl<'s, T: Inpt<'s>, const N: usize> Inpt<'s> for [T; N]

Source§

fn step( text: &'s str, end: bool, trimmed: CharClass, guard: &mut RecursionGuard, ) -> InptStep<'s, Self>

Source§

fn default_trim(inherited: CharClass) -> CharClass

Implementors§

Source§

impl<'s, T> Inpt<'s> for Group<T>
where Self: 's, T: Inpt<'s>,

Source§

impl<'s, T> Inpt<'s> for Line<T>
where Self: 's, T: Inpt<'s>,

Source§

impl<'s, T> Inpt<'s> for Quoted<T>
where Self: 's, T: Inpt<'s>,

Source§

impl<'s, T> Inpt<'s> for SingleQuoted<T>
where Self: 's, T: Inpt<'s>,

Source§

impl<'s, T> Inpt<'s> for Spaced<T>
where Self: 's, T: Inpt<'s>,

Source§

impl<'s, T> Inpt<'s> for Word<T>
where Self: 's, T: Inpt<'s>,

Source§

impl<'s, T> Inpt<'s> for NoTrim<T>
where Self: 's, T: Inpt<'s>,

Source§

impl<'s, T: Inpt<'s>> Inpt<'s> for InptIter<'s, T>

Source§

impl<'s, T: Inpt<'s>> Inpt<'s> for InptResult<'s, T>

Source§

impl<'s, const OPEN: char, const CLOSE: char, T> Inpt<'s> for AnyBracketed<OPEN, CLOSE, T>
where T: Inpt<'s>,