Skip to main content

Extractor

Trait Extractor 

Source
pub trait Extractor: Sized {
    type Output;

    // Required methods
    fn visit(&mut self, elem: &Content) -> ControlFlow<()>;
    fn finish(self) -> Self::Output;
}
Expand description

Trait for extracting data from Typst Content.

Required Associated Types§

Source

type Output

The type returned after extraction.

Required Methods§

Source

fn visit(&mut self, elem: &Content) -> ControlFlow<()>

Visit a content element during traversal.

Return ControlFlow::Break(()) to stop traversal early.

Source

fn finish(self) -> Self::Output

Finalize and return the extracted data.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<A: Extractor, B: Extractor, C: Extractor, D: Extractor, E: Extractor, F: Extractor, G: Extractor, H: Extractor> Extractor for (A, B, C, D, E, F, G, H)

Source§

type Output = (<A as Extractor>::Output, <B as Extractor>::Output, <C as Extractor>::Output, <D as Extractor>::Output, <E as Extractor>::Output, <F as Extractor>::Output, <G as Extractor>::Output, <H as Extractor>::Output)

Source§

fn visit(&mut self, elem: &Content) -> ControlFlow<()>

Source§

fn finish(self) -> Self::Output

Source§

impl<B: Extractor, C: Extractor, D: Extractor, E: Extractor, F: Extractor, G: Extractor, H: Extractor> Extractor for (B, C, D, E, F, G, H)

Source§

type Output = (<B as Extractor>::Output, <C as Extractor>::Output, <D as Extractor>::Output, <E as Extractor>::Output, <F as Extractor>::Output, <G as Extractor>::Output, <H as Extractor>::Output)

Source§

fn visit(&mut self, elem: &Content) -> ControlFlow<()>

Source§

fn finish(self) -> Self::Output

Source§

impl<C: Extractor, D: Extractor, E: Extractor, F: Extractor, G: Extractor, H: Extractor> Extractor for (C, D, E, F, G, H)

Source§

type Output = (<C as Extractor>::Output, <D as Extractor>::Output, <E as Extractor>::Output, <F as Extractor>::Output, <G as Extractor>::Output, <H as Extractor>::Output)

Source§

fn visit(&mut self, elem: &Content) -> ControlFlow<()>

Source§

fn finish(self) -> Self::Output

Source§

impl<D: Extractor, E: Extractor, F: Extractor, G: Extractor, H: Extractor> Extractor for (D, E, F, G, H)

Source§

type Output = (<D as Extractor>::Output, <E as Extractor>::Output, <F as Extractor>::Output, <G as Extractor>::Output, <H as Extractor>::Output)

Source§

fn visit(&mut self, elem: &Content) -> ControlFlow<()>

Source§

fn finish(self) -> Self::Output

Source§

impl<E: Extractor, F: Extractor, G: Extractor, H: Extractor> Extractor for (E, F, G, H)

Source§

type Output = (<E as Extractor>::Output, <F as Extractor>::Output, <G as Extractor>::Output, <H as Extractor>::Output)

Source§

fn visit(&mut self, elem: &Content) -> ControlFlow<()>

Source§

fn finish(self) -> Self::Output

Source§

impl<F: Extractor, G: Extractor, H: Extractor> Extractor for (F, G, H)

Source§

type Output = (<F as Extractor>::Output, <G as Extractor>::Output, <H as Extractor>::Output)

Source§

fn visit(&mut self, elem: &Content) -> ControlFlow<()>

Source§

fn finish(self) -> Self::Output

Source§

impl<G: Extractor, H: Extractor> Extractor for (G, H)

Source§

type Output = (<G as Extractor>::Output, <H as Extractor>::Output)

Source§

fn visit(&mut self, elem: &Content) -> ControlFlow<()>

Source§

fn finish(self) -> Self::Output

Source§

impl<H: Extractor> Extractor for (H,)

Source§

type Output = (<H as Extractor>::Output,)

Source§

fn visit(&mut self, elem: &Content) -> ControlFlow<()>

Source§

fn finish(self) -> Self::Output

Implementors§