combine::stream

Trait StreamOnce

Source
pub trait StreamOnce {
    type Item: Clone + PartialEq;
    type Range: Clone + PartialEq;
    type Position: Clone + Ord;
    type Error: ParseError<Self::Item, Self::Range, Self::Position>;

    // Required method
    fn uncons(&mut self) -> Result<Self::Item, StreamErrorFor<Self>>;

    // Provided method
    fn is_partial(&self) -> bool { ... }
}
Expand description

StreamOnce represents a sequence of items that can be extracted one by one.

Required Associated Types§

Source

type Item: Clone + PartialEq

The type of items which is yielded from this stream.

Source

type Range: Clone + PartialEq

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::Item for this type.

Source

type Position: Clone + Ord

Type which represents the position in a stream. Ord is required to allow parsers to determine which of two positions are further ahead.

Source

type Error: ParseError<Self::Item, Self::Range, Self::Position>

Required Methods§

Source

fn uncons(&mut self) -> Result<Self::Item, StreamErrorFor<Self>>

Takes a stream and removes its first item, yielding the item and the rest of the elements. Returns Err if no element could be retrieved.

Provided Methods§

Source

fn is_partial(&self) -> bool

Returns true if this stream only contains partial input.

See PartialStream.

Implementations on Foreign Types§

Source§

impl<'a> StreamOnce for &'a str

Source§

impl<'a, T> StreamOnce for &'a [T]
where T: Clone + PartialEq,

Implementors§

Source§

impl<'a, T> StreamOnce for SliceStream<'a, T>
where T: PartialEq + 'a,

Source§

impl<I> StreamOnce for BufferedStream<I>

Source§

impl<I, X, S> StreamOnce for State<I, X>
where I: StreamOnce, X: Positioner<I::Item>, S: StreamError<I::Item, I::Range>, I::Error: ParseError<I::Item, I::Range, X::Position, StreamError = S> + ParseError<I::Item, I::Range, I::Position, StreamError = S>,

Source§

impl<I: Iterator> StreamOnce for IteratorStream<I>
where I::Item: Clone + PartialEq,

Source§

impl<R: Read> StreamOnce for ReadStream<R>

Source§

impl<S> StreamOnce for Stream<S>

Source§

impl<S> StreamOnce for PartialStream<S>
where S: StreamOnce,