oak_vampire/parser/
element_type.rs1use oak_core::ElementType;
2
3#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
5#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6pub enum VampireElementType {
7 Root,
9}
10
11impl ElementType for VampireElementType {
12 type Role = oak_core::UniversalElementRole;
13
14 fn role(&self) -> Self::Role {
15 match self {
16 VampireElementType::Root => oak_core::UniversalElementRole::Root,
17 }
18 }
19}
20
21impl From<crate::lexer::token_type::VampireTokenType> for VampireElementType {
22 fn from(_: crate::lexer::token_type::VampireTokenType) -> Self {
23 VampireElementType::Root
24 }
25}
26
27impl From<VampireElementType> for u16 {
28 fn from(t: VampireElementType) -> u16 {
29 t as u16
30 }
31}
32
33impl From<u16> for VampireElementType {
34 fn from(i: u16) -> Self {
35 match i {
36 0 => VampireElementType::Root,
37 _ => VampireElementType::Root, }
39 }
40}