pub struct ReadStream<R> { /* private fields */ }
Implementations§
Source§impl<R> ReadStream<R>where
R: Read,
impl<R> ReadStream<R>where
R: Read,
Sourcepub fn new(read: R) -> ReadStream<R>
pub fn new(read: R) -> ReadStream<R>
Creates a StreamOnce
instance from a value implementing std::io::Read
.
NOTE: This type do not implement Positioned
and Clone
and must be wrapped with types
such as BufferedStreamRef
and State
to become a Stream
which can be parsed
use combine::*;
use combine::parser::byte::*;
use combine::stream::ReadStream;
use combine::stream::buffered::BufferedStream;
use combine::stream::state::State;
use std::io::Read;
let input: &[u8] = b"123,";
let stream = BufferedStream::new(State::new(ReadStream::new(input)), 1);
let result = (many(digit()), byte(b','))
.parse(stream)
.map(|t| t.0);
assert_eq!(result, Ok((vec![b'1', b'2', b'3'], b',')));
Trait Implementations§
Source§impl<R> DefaultPositioned for ReadStream<R>
impl<R> DefaultPositioned for ReadStream<R>
type Positioner = IndexPositioner
Source§impl<R: Read> StreamOnce for ReadStream<R>
impl<R: Read> StreamOnce for ReadStream<R>
Source§type Range = u8
type Range = u8
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 = usize
type Position = usize
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 = Errors<u8, u8, usize>
Source§fn uncons(&mut self) -> Result<u8, StreamErrorFor<Self>>
fn uncons(&mut self) -> Result<u8, 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.Source§fn is_partial(&self) -> bool
fn is_partial(&self) -> bool
Returns
true
if this stream only contains partial input. Read moreAuto Trait Implementations§
impl<R> Freeze for ReadStream<R>where
R: Freeze,
impl<R> RefUnwindSafe for ReadStream<R>where
R: RefUnwindSafe,
impl<R> Send for ReadStream<R>where
R: Send,
impl<R> Sync for ReadStream<R>where
R: Sync,
impl<R> Unpin for ReadStream<R>where
R: Unpin,
impl<R> UnwindSafe for ReadStream<R>where
R: 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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more