use super::Renderer;
use crate::{markdown::Options, mdast::Node, message::Message};
use alloc::string::String;
#[derive(Clone, Debug, Default)]
pub struct MarkdownRenderer {
options: Options,
}
impl MarkdownRenderer {
#[must_use]
pub fn new() -> Self {
Self::default()
}
#[must_use]
pub fn with_options(options: Options) -> Self {
Self { options }
}
#[must_use]
pub fn options(&self) -> &Options {
&self.options
}
pub fn try_render(&mut self, node: &Node) -> Result<String, Message> {
crate::markdown::to_markdown_with_options(node, &self.options)
}
}
impl Renderer for MarkdownRenderer {
fn render_node(&mut self, node: &Node) -> String {
self.try_render(node)
.expect("Markdown rendering failed; use try_render to handle errors")
}
}