sdf-common 0.14.0

Stateful Dataflow constants and common utils
Documentation
use std::fmt::Display;

use wit_encoder::{Interface, Render, RenderOpts};

pub struct WitDisplay<T: Render>(pub T);

impl<T: Render> Display for WitDisplay<T> {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        self.0.render(f, &RenderOpts::default())?;

        Ok(())
    }
}

pub struct WitInterfaceDisplay(pub Interface);

impl Display for WitInterfaceDisplay {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let opts = RenderOpts::default();
        write!(f, "{}interface {} {{", opts.spaces(), self.0.name())?;
        if !self.0.uses().is_empty() || !self.0.items().is_empty() {
            writeln!(f)?;
            self.0.uses().to_vec().render(f, &opts.indent())?;
            self.0.items().to_vec().render(f, &opts.indent())?;
            writeln!(f, "{}}}", opts.spaces())?;
        } else {
            writeln!(f, "}}")?;
        }

        Ok(())
    }
}