Trait tendril::stream::TendrilSink
[−]
[src]
pub trait TendrilSink<F, A = NonAtomic> where
F: Format,
A: Atomicity, { type Output; fn process(&mut self, t: Tendril<F, A>); fn error(&mut self, desc: Cow<'static, str>); fn finish(self) -> Self::Output; fn one<T>(self, t: T) -> Self::Output
where
Self: Sized,
T: Into<Tendril<F, A>>, { ... } fn from_iter<I>(self, i: I) -> Self::Output
where
Self: Sized,
I: IntoIterator,
I::Item: Into<Tendril<F, A>>, { ... } fn read_from<R>(self, r: &mut R) -> Result<Self::Output>
where
Self: Sized,
R: Read,
F: SliceFormat<Slice = [u8]>, { ... } fn from_file<P>(self, path: P) -> Result<Self::Output>
where
Self: Sized,
P: AsRef<Path>,
F: SliceFormat<Slice = [u8]>, { ... } }
Trait for types that can process a tendril.
This is a "push" interface, unlike the "pull" interface of
Iterator<Item=Tendril<F>>
. The push interface matches
html5ever and other incremental parsers with a similar
architecture.
Associated Types
type Output
What the overall result of processing is.
Required Methods
fn process(&mut self, t: Tendril<F, A>)
Process this tendril.
fn error(&mut self, desc: Cow<'static, str>)
Indicates that an error has occurred.
fn finish(self) -> Self::Output
Indicates the end of the stream.
Provided Methods
fn one<T>(self, t: T) -> Self::Output where
Self: Sized,
T: Into<Tendril<F, A>>,
Self: Sized,
T: Into<Tendril<F, A>>,
Process one tendril and finish.
fn from_iter<I>(self, i: I) -> Self::Output where
Self: Sized,
I: IntoIterator,
I::Item: Into<Tendril<F, A>>,
Self: Sized,
I: IntoIterator,
I::Item: Into<Tendril<F, A>>,
Consume an iterator of tendrils, processing each item, then finish.
fn read_from<R>(self, r: &mut R) -> Result<Self::Output> where
Self: Sized,
R: Read,
F: SliceFormat<Slice = [u8]>,
Self: Sized,
R: Read,
F: SliceFormat<Slice = [u8]>,
Read from the given stream of bytes until exhaustion and process incrementally,
then finish. Return Err
at the first I/O error.
fn from_file<P>(self, path: P) -> Result<Self::Output> where
Self: Sized,
P: AsRef<Path>,
F: SliceFormat<Slice = [u8]>,
Self: Sized,
P: AsRef<Path>,
F: SliceFormat<Slice = [u8]>,
Read from the file at the given path and process incrementally,
then finish. Return Err
at the first I/O error.
Implementors
impl<Sink, A> TendrilSink<Bytes, A> for Utf8LossyDecoder<Sink, A> where
Sink: TendrilSink<UTF8, A>,
A: Atomicity, type Output = Sink::Output;