use kstring::KString;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Attribute {
pub name: KString,
pub description: KString,
pub field_name: KString,
pub ty: AttributeType,
}
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
pub enum AttributeType {
Bool,
KString,
Integer,
Float,
Identifier(KString),
Enumerable(Vec<KString>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MergedElement {
pub tag_name: KString,
pub struct_name: KString,
pub submodule_name: KString,
pub mdn_link: KString,
pub has_global_attributes: bool,
pub has_closing_tag: bool,
pub attributes: Vec<Attribute>,
pub dom_interface: KString,
pub content_categories: Vec<MergedCategory>,
pub permitted_child_elements: Vec<KString>,
}
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
pub enum MergedCategory {
Metadata,
Flow,
Sectioning,
Heading,
Phrasing,
Embedded,
Interactive,
Palpable,
ScriptSupporting,
Transparent,
}