pub struct Stream<S, E>(pub S, _);
Tuple Fields§
§0: S
Trait Implementations§
source§impl<S, E> Positioned for Stream<S, E>where
S: StreamOnce + Positioned,
S::Token: PartialEq,
S::Range: PartialEq,
E: ParseError<S::Token, S::Range, Span<S::Position>>,
S::Error: ParseErrorInto<S::Token, S::Range, S::Position>,
<S::Error as ParseError<S::Token, S::Range, S::Position>>::StreamError: StreamErrorInto<S::Token, S::Range>,
impl<S, E> Positioned for Stream<S, E>where
S: StreamOnce + Positioned,
S::Token: PartialEq,
S::Range: PartialEq,
E: ParseError<S::Token, S::Range, Span<S::Position>>,
S::Error: ParseErrorInto<S::Token, S::Range, S::Position>,
<S::Error as ParseError<S::Token, S::Range, S::Position>>::StreamError: StreamErrorInto<S::Token, S::Range>,
source§impl<S, E> RangeStreamOnce for Stream<S, E>where
S: RangeStream,
S::Token: PartialEq,
S::Range: PartialEq,
E: ParseError<S::Token, S::Range, Span<S::Position>>,
S::Error: ParseErrorInto<S::Token, S::Range, S::Position>,
<S::Error as ParseError<S::Token, S::Range, S::Position>>::StreamError: StreamErrorInto<S::Token, S::Range>,
impl<S, E> RangeStreamOnce for Stream<S, E>where
S: RangeStream,
S::Token: PartialEq,
S::Range: PartialEq,
E: ParseError<S::Token, S::Range, Span<S::Position>>,
S::Error: ParseErrorInto<S::Token, S::Range, S::Position>,
<S::Error as ParseError<S::Token, S::Range, S::Position>>::StreamError: StreamErrorInto<S::Token, S::Range>,
source§fn uncons_range(
&mut self,
size: usize,
) -> Result<Self::Range, StreamErrorFor<Self>>
fn uncons_range( &mut self, size: usize, ) -> Result<Self::Range, StreamErrorFor<Self>>
Takes
size
elements from the stream.
Fails if the length of the stream is less than size
.source§fn uncons_while<F>(&mut self, f: F) -> Result<Self::Range, StreamErrorFor<Self>>
fn uncons_while<F>(&mut self, f: F) -> Result<Self::Range, StreamErrorFor<Self>>
Takes items from stream, testing each one with
predicate
.
returns the range of items which passed predicate
.source§fn uncons_while1<F>(
&mut self,
f: F,
) -> ParseResult<Self::Range, StreamErrorFor<Self>>
fn uncons_while1<F>( &mut self, f: F, ) -> ParseResult<Self::Range, StreamErrorFor<Self>>
Takes items from stream, testing each one with
predicate
returns a range of at least one items which passed predicate
. Read moresource§fn distance(&self, end: &Self::Checkpoint) -> usize
fn distance(&self, end: &Self::Checkpoint) -> usize
source§impl<S, E> ResetStream for Stream<S, E>where
S: ResetStream + Positioned,
S::Token: PartialEq,
S::Range: PartialEq,
E: ParseError<S::Token, S::Range, Span<S::Position>>,
S::Error: ParseErrorInto<S::Token, S::Range, S::Position>,
<S::Error as ParseError<S::Token, S::Range, S::Position>>::StreamError: StreamErrorInto<S::Token, S::Range>,
impl<S, E> ResetStream for Stream<S, E>where
S: ResetStream + Positioned,
S::Token: PartialEq,
S::Range: PartialEq,
E: ParseError<S::Token, S::Range, Span<S::Position>>,
S::Error: ParseErrorInto<S::Token, S::Range, S::Position>,
<S::Error as ParseError<S::Token, S::Range, S::Position>>::StreamError: StreamErrorInto<S::Token, S::Range>,
type Checkpoint = <S as ResetStream>::Checkpoint
source§fn checkpoint(&self) -> Self::Checkpoint
fn checkpoint(&self) -> Self::Checkpoint
Creates a
Checkpoint
at the current position which can be used to reset the stream
later to the current positionsource§impl<S, E> StreamOnce for Stream<S, E>where
S: StreamOnce + Positioned,
S::Token: PartialEq,
S::Range: PartialEq,
E: ParseError<S::Token, S::Range, Span<S::Position>>,
S::Error: ParseErrorInto<S::Token, S::Range, S::Position>,
<S::Error as ParseError<S::Token, S::Range, S::Position>>::StreamError: StreamErrorInto<S::Token, S::Range>,
impl<S, E> StreamOnce for Stream<S, E>where
S: StreamOnce + Positioned,
S::Token: PartialEq,
S::Range: PartialEq,
E: ParseError<S::Token, S::Range, Span<S::Position>>,
S::Error: ParseErrorInto<S::Token, S::Range, S::Position>,
<S::Error as ParseError<S::Token, S::Range, S::Position>>::StreamError: StreamErrorInto<S::Token, S::Range>,
source§type Token = <S as StreamOnce>::Token
type Token = <S as StreamOnce>::Token
The type of items which is yielded from this stream.
source§type Range = <S as StreamOnce>::Range
type Range = <S as StreamOnce>::Range
The type of a range of items yielded from this stream.
Types which do not a have a way of yielding ranges of items should just use the
Self::Token
for this type.source§type Position = Span<<S as StreamOnce>::Position>
type Position = Span<<S as StreamOnce>::Position>
Type which represents the position in a stream.
Ord
is required to allow parsers to determine which of two positions are further ahead.type Error = E
source§fn uncons(&mut self) -> Result<Self::Token, StreamErrorFor<Self>>
fn uncons(&mut self) -> Result<Self::Token, StreamErrorFor<Self>>
Takes a stream and removes its first token, yielding the token and the rest of the elements.
Returns
Err
if no element could be retrieved.source§fn is_partial(&self) -> bool
fn is_partial(&self) -> bool
Returns
true
if this stream only contains partial input. Read moreimpl<S: Copy, E: Copy> Copy for Stream<S, E>
impl<S: Eq, E: Eq> Eq for Stream<S, E>
impl<S, E> StructuralPartialEq for Stream<S, E>
Auto Trait Implementations§
impl<S, E> Freeze for Stream<S, E>where
S: Freeze,
impl<S, E> RefUnwindSafe for Stream<S, E>where
S: RefUnwindSafe,
impl<S, E> Send for Stream<S, E>where
S: Send,
impl<S, E> Sync for Stream<S, E>where
S: Sync,
impl<S, E> Unpin for Stream<S, E>where
S: Unpin,
impl<S, E> UnwindSafe for Stream<S, E>where
S: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)