Skip to main content

oak_typst/parser/
element_type.rs

1use 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 TypstElementType {
8    Root,
9    Heading,
10    Quote,
11    Math,
12    Strong,
13    Emphasis,
14    ListItem,
15    EnumItem,
16    Raw,
17}
18
19impl ElementType for TypstElementType {
20    type Role = UniversalElementRole;
21
22    fn role(&self) -> Self::Role {
23        match self {
24            _ => UniversalElementRole::None,
25        }
26    }
27}
28
29impl From<crate::lexer::token_type::TypstTokenType> for TypstElementType {
30    fn from(_token: crate::lexer::token_type::TypstTokenType) -> Self {
31        Self::Root
32    }
33}