pub mod fast;
pub mod webui;
use crate::component_registry::Component;
use crate::Result;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum AttributeAction {
Keep,
Skip,
SkipAndCountBinding,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ParserPluginArtifacts {
None,
ComponentTemplates(Vec<(String, String)>),
}
pub trait ParserPlugin {
fn start_fragment(&mut self, _fragment_id: &str) {}
fn register_component_template(
&mut self,
tag_name: &str,
component: &Component,
processed_template: &str,
) -> Result<()>;
fn classify_attribute(&mut self, attr_name: &str) -> AttributeAction;
fn finish_element(&mut self, binding_attribute_count: u32) -> Option<Vec<u8>>;
fn into_artifacts(self: Box<Self>) -> ParserPluginArtifacts {
ParserPluginArtifacts::None
}
}