oak_xml/parser/
element_type.rs1use oak_core::{ElementType, Parser, UniversalElementRole};
2#[cfg(feature = "serde")]
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
6#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
7pub enum XmlElementType {
8 Root,
9 Prolog,
10 Element,
11 StartTag,
12 EndTag,
13 SelfClosingTag,
14 Attribute,
15 Text,
16 Comment,
17 CData,
18}
19
20impl ElementType for XmlElementType {
21 type Role = UniversalElementRole;
22
23 fn role(&self) -> Self::Role {
24 match self {
25 _ => UniversalElementRole::None,
26 }
27 }
28}
29
30impl From<crate::lexer::token_type::XmlTokenType> for XmlElementType {
31 fn from(token: crate::lexer::token_type::XmlTokenType) -> Self {
32 unsafe { std::mem::transmute(token) }
33 }
34}