[]Trait kuchiki::traits::TendrilSink

pub trait TendrilSink<F, A = NonAtomic> where
    A: Atomicity,
    F: Format, 
{ 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
        T: Into<Tendril<F, A>>
, { ... }
fn from_iter<I>(self, i: I) -> Self::Output
    where
        I: IntoIterator,
        <I as IntoIterator>::Item: Into<Tendril<F, A>>
, { ... }
fn read_from<R>(self, r: &mut R) -> Result<Self::Output, Error>
    where
        F: SliceFormat<Slice = [u8]>,
        R: Read
, { ... }
fn from_file<P>(self, path: P) -> Result<Self::Output, Error>
    where
        F: SliceFormat<Slice = [u8]>,
        P: AsRef<Path>
, { ... } }

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.

Loading content...

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.

Loading content...

Provided methods

fn one<T>(self, t: T) -> Self::Output where
    T: Into<Tendril<F, A>>, 

Process one tendril and finish.

fn from_iter<I>(self, i: I) -> Self::Output where
    I: IntoIterator,
    <I as IntoIterator>::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, Error> where
    F: SliceFormat<Slice = [u8]>,
    R: Read

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, Error> where
    F: SliceFormat<Slice = [u8]>,
    P: AsRef<Path>, 

Read from the file at the given path and process incrementally, then finish. Return Err at the first I/O error.

Loading content...

Implementations on Foreign Types

impl<Sink> TendrilSink<UTF8, NonAtomic> for Parser<Sink> where
    Sink: TreeSink, 

type Output = <Sink as TreeSink>::Output

impl<Sink, A> TendrilSink<Bytes, A> for Utf8LossyDecoder<Sink, A> where
    A: Atomicity,
    Sink: TendrilSink<UTF8, A>, 

type Output = <Sink as TendrilSink<UTF8, A>>::Output

Loading content...

Implementors

Loading content...