oak_lean/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)]
7#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
8pub enum LeanElementType {
9 Root,
11 Error,
13}
14
15impl ElementType for LeanElementType {
16 type Role = UniversalElementRole;
17
18 fn role(&self) -> Self::Role {
19 match self {
20 _ => UniversalElementRole::None,
21 }
22 }
23}
24
25impl From<crate::lexer::token_type::LeanTokenType> for LeanElementType {
26 fn from(token: crate::lexer::token_type::LeanTokenType) -> Self {
27 use crate::lexer::token_type::LeanTokenType;
28 match token {
29 LeanTokenType::Root => LeanElementType::Root,
30 _ => LeanElementType::Error,
31 }
32 }
33}