ValueInput

Trait ValueInput 

Source
pub trait ValueInput<'src>: Input<'src> {
    // Required method
    unsafe fn next(
        cache: &mut Self::Cache,
        cursor: &mut Self::Cursor,
    ) -> Option<Self::Token>;
}
Expand description

Implemented by inputs that can have produce tokens by value.

Required Methods§

Source

unsafe fn next( cache: &mut Self::Cache, cursor: &mut Self::Cursor, ) -> Option<Self::Token>

Get the next cursor from the provided one, and the next token if it exists

§Safety

As with functions on Input, the cursors provided must be generated by this input.

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<'src> ValueInput<'src> for &'src str

Source§

unsafe fn next( this: &mut <&'src str as Input<'src>>::Cache, cursor: &mut <&'src str as Input<'src>>::Cursor, ) -> Option<<&'src str as Input<'src>>::Token>

Source§

impl<'src, T> ValueInput<'src> for &'src [T]
where T: Clone,

Source§

unsafe fn next( this: &mut <&'src [T] as Input<'src>>::Cache, cursor: &mut <&'src [T] as Input<'src>>::Cursor, ) -> Option<<&'src [T] as Input<'src>>::Token>

Source§

impl<'src, T, const N: usize> ValueInput<'src> for &'src [T; N]
where T: Clone + 'src,

Source§

unsafe fn next( this: &mut <&'src [T; N] as Input<'src>>::Cache, cursor: &mut <&'src [T; N] as Input<'src>>::Cursor, ) -> Option<<&'src [T; N] as Input<'src>>::Token>

Implementors§

Source§

impl<'a, I> ValueInput<'a> for Stream<I>
where I: Iterator + 'a, <I as Iterator>::Item: Clone,

Source§

impl<'src> ValueInput<'src> for &'src Graphemes

Source§

impl<'src, R> ValueInput<'src> for IoInput<R>
where R: Read + Seek + 'src,

Source§

impl<'src, S, I> ValueInput<'src> for WithContext<S, I>
where I: ValueInput<'src>, S: Span + Clone + 'src, <S as Span>::Context: Clone + 'src, <S as Span>::Offset: From<<<I as Input<'src>>::Span as Span>::Offset>,

Source§

impl<'src, S, I, F> ValueInput<'src> for MappedSpan<S, I, F>
where I: ValueInput<'src>, F: 'src + Fn(<I as Input<'src>>::Span) -> S, S: Span + Clone + 'src, <S as Span>::Context: Clone + 'src, <S as Span>::Offset: From<<<I as Input<'src>>::Span as Span>::Offset>,

Source§

impl<'src, T, S, I, F> ValueInput<'src> for MappedInput<T, S, I, F>
where I: ValueInput<'src>, T: Clone + 'src, S: Span + Clone + 'src, F: Fn(<I as Input<'src>>::MaybeToken) -> (<<I as Input<'src>>::MaybeToken as IntoMaybe<'src, <I as Input<'src>>::Token>>::Proj<T>, <<I as Input<'src>>::MaybeToken as IntoMaybe<'src, <I as Input<'src>>::Token>>::Proj<S>) + 'src,