parse_html/
token.rs

1use std::fmt::Display;
2
3#[derive(Debug, PartialEq, Clone)]
4pub enum Token {
5    TagOpen(String),
6    TagClose(String),    
7    SelfClosingTag(String), 
8    AttributeName(String), 
9    AttributeValue(String), 
10    Text(String),         
11    Eof,      
12}
13
14impl Display for Token {
15    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
16        match self {
17            Token::TagOpen(name) => write!(f, "<{}>", name),
18            Token::TagClose(name) => write!(f, "</{}>", name),
19            Token::SelfClosingTag(name) => write!(f, "<{} />", name),
20            Token::AttributeName(name) => write!(f, "{}", name),
21            Token::AttributeValue(value) => write!(f, "\"{}\"", value),
22            Token::Text(text) => write!(f, "{}", text),
23            Token::Eof => write!(f, "EOF"),
24        }
25    }
26}