use crate::error::WriteResult;
pub trait NodeProcessor {
fn can_process(&self, node: &crate::ast::Node) -> bool;
fn process_commonmark(
&self,
writer: &mut crate::writer::CommonMarkWriter,
node: &crate::ast::Node,
) -> WriteResult<()>;
fn process_html(
&self,
writer: &mut crate::writer::HtmlWriter,
node: &crate::ast::Node,
) -> WriteResult<()>;
fn priority(&self) -> u32 {
0
}
}
pub trait BlockNodeProcessor: NodeProcessor {
fn ensure_block_separation(&self, writer: &mut dyn super::core::Writer) -> WriteResult<()>;
}
pub trait InlineNodeProcessor: NodeProcessor {
fn validate_inline_content(&self, node: &crate::ast::Node) -> WriteResult<()>;
}