Skip to main content

EmbedRenderer

Trait EmbedRenderer 

Source
pub trait EmbedRenderer:
    Debug
    + Send
    + Sync {
    // Required methods
    fn extensions(&self) -> &[&'static str];
    fn render(&self, embed: &ParsedEmbed<'_>) -> RenderedEmbed;

    // Provided method
    fn head_assets(&self) -> &[&'static str] { ... }
}
Expand description

A renderer converts a ParsedEmbed into its rendered form.

Required Methods§

Source

fn extensions(&self) -> &[&'static str]

Extensions this renderer claims (lowercase, without leading dot).

Source

fn render(&self, embed: &ParsedEmbed<'_>) -> RenderedEmbed

Render the embed. Must be pure; moss-core is I/O-free.

Provided Methods§

Source

fn head_assets(&self) -> &[&'static str]

Page-level HTML fragments this renderer needs in <head>, injected once per page that contains at least one embed from this renderer.

Example: ModelViewerRenderer returns a <script type="module"> tag so that <model-viewer> custom elements work. The build pipeline collects and deduplicates these across all embeds on a page.

Default: empty. Renderers with no page-level assets don’t override.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§