Trait RenderElement

Source
pub trait RenderElement<T> {
    // Required method
    fn render(
        &mut self,
        elem: &T,
        ctx: &RenderContext<'_>,
        buf: impl Write,
    ) -> Result<()>;

    // Provided method
    fn render_inner(
        &mut self,
        elem: &T,
        ctx: &RenderContext<'_>,
    ) -> Result<CowStr> { ... }
}
Expand description

The base trait that renderers should implement for each type used by [create::ast::Ast].

Required Methods§

Source

fn render( &mut self, elem: &T, ctx: &RenderContext<'_>, buf: impl Write, ) -> Result<()>

Render the element to a buffer

Provided Methods§

Source

fn render_inner(&mut self, elem: &T, ctx: &RenderContext<'_>) -> Result<CowStr>

Convenience function for creating a buffer, rendering the element into the buffer, and returning the result as a string. This is useful when an inner element needs to be rendered first to be used in an outer element, hence the name.

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.

Implementors§

Source§

impl RenderElement<Block> for GenericRenderer

Source§

impl RenderElement<Inline> for GenericRenderer

Source§

impl RenderElement<CodeOutput> for GenericRenderer

Source§

impl<T: RenderElement<R>, R> RenderElement<Vec<R>> for T

Implementation for vectors of elements. Automatically implemented for any type that implements the trait.