pub struct Stream<Input> where
    Input: StreamOnce + Positioned
{ /* private fields */ }
Expand description

Stream which buffers items from an instance of StreamOnce into a ring buffer. Instances of StreamOnce which is not able to implement ResetStream (such as ReadStream) may use this as a way to implement ResetStream and become a full Stream instance.

The drawback is that the buffer only stores a limited number of items which limits how many tokens that can be reset and replayed. If a buffered::Stream is reset past this limit an error will be returned when uncons is next called.

NOTE: If this stream is used in conjunction with an error enhancing stream such as easy::Stream (also via the easy_parser method) it is recommended that the buffered::Stream instance wraps the easy::Stream instance instead of the other way around.

// DO
buffered::Stream::new(easy::Stream(..), ..)
// DON'T
easy::Stream(buffered::Stream::new(.., ..))
parser.easy_parse(buffered::Stream::new(..));

Implementations

Constructs a new BufferedStream from a StreamOnce instance with a lookahead number of elements that can be stored in the buffer.

Trait Implementations

Formats the value using the given formatter. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Returns the current position of the stream.

Creates a Checkpoint at the current position which can be used to reset the stream later to the current position Read more

Attempts to reset the stream to an earlier position.

The type of items which is yielded from this stream.

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. Read more

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

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. Read more

Returns true if this stream only contains partial input. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.