use proc_macro2::TokenStream;
use syn::punctuated::Punctuated;
#[derive(Debug, Clone, PartialEq)]
pub struct DashIdent(pub Punctuated<syn::Ident, syn::Token![-]>);
#[derive(Debug, Clone, PartialEq)]
pub struct Doctype;
#[derive(Debug, Clone)]
pub enum Tag {
Start {
name: DashIdent,
attributes: Vec<Attr>,
self_closing: bool,
},
End {
name: DashIdent,
},
}
#[derive(Debug, Clone)]
pub struct Attr {
pub name: DashIdent,
pub value: Value,
}
#[derive(Debug, Clone)]
pub enum Value {
Text(syn::LitStr),
Braced(TokenStream),
}
#[derive(Debug, Clone)]
pub enum Segment {
Doctype(Doctype),
Tag(Tag),
Value(Value),
}