Module stream

Source
Expand description

Streams are similar to the Iterator trait in that they represent some sequential set of items which can be retrieved one by one. Where Streams differ is that they are allowed to return errors instead of just None and if they implement the RangeStreamOnce trait they are also capable of returning multiple items at the same time, usually in the form of a slice.

In addition to he functionality above, a proper Stream usable by a Parser must also have a position (marked by the Positioned trait) and must also be resetable (marked by the ResetStream trait). The former is used to ensure that errors at different points in the stream aren’t combined and the latter is used in parsers such as or to try multiple alternative parses.

Re-exports§

pub use self::decoder::Decoder;

Modules§

buf_reader
buffered
Stream wrapper which provides a ResetStream impl for StreamOnce impls which do not have one.
decoder
easy
Stream wrapper which provides an informative and easy to use error type.
position
Stream wrapper which provides more detailed position information.
read
Stream wrapper allowing std::io::Read to be used
span
state
Stream wrapper allowing custom state to be used.

Structs§

CompleteStream
Stream type which indicates that the stream is complete if end of input is reached
IteratorStream
Wrapper around iterators which allows them to be treated as a stream. Returned by IteratorStream::new.
MaybePartialStream
PartialStream
Stream type which indicates that the stream is partial if end of input is reached
PointerOffset
Newtype around a pointer offset into a slice stream (&[T]/&str).
SliceStream
Newtype for constructing a stream from a slice where the items in the slice are not copyable.

Traits§

Positioned
A type which has a position.
Range
Trait representing a range of elements.
RangeStream
A RangeStream is an extension of Stream which allows for zero copy parsing.
RangeStreamOnce
A RangeStream is an extension of StreamOnce which allows for zero copy parsing.
ResetStream
A StreamOnce which can create checkpoints which the stream can be reset to
Stream
A stream of tokens which can be duplicated
StreamOnce
StreamOnce represents a sequence of items that can be extracted one by one.

Functions§

decode
Decodes input using parser.
decode_tokio
Decodes input using parser. Like decode but works directly in both tokio_util::Decoder::decode and tokio_util::Decoder::decode_eof
uncons
uncons_range
uncons_while
Removes items from the input while predicate returns true.
uncons_while1
Takes items from stream, testing each one with predicate returns a range of at least one items which passed predicate.

Type Aliases§

StreamErrorFor
Convenience alias over the StreamError for the input stream Input