oak_handlebars/lexer/
token_type.rs1use oak_core::{Source, Token, TokenType, UniversalElementRole, UniversalTokenRole};
2#[cfg(feature = "serde")]
3use serde::{Deserialize, Serialize};
4
5pub type HandlebarsToken = Token<HandlebarsTokenType>;
6
7#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
8#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
9pub enum HandlebarsTokenType {
10 Whitespace,
13 Newline,
14
15 Comment,
17
18 Open, Close, OpenUnescaped, CloseUnescaped, OpenRawBlock, CloseRawBlock, OpenEndRawBlock, OpenBlock, OpenInverseBlock, CloseBlock, OpenPartial, OpenComment, OpenCommentBlock, CloseCommentBlock, Else, Identifier,
39 StringLiteral,
40 NumberLiteral,
41 BooleanLiteral,
42 Dot, Slash, Hash, At, Pipe, Equal, LeftParen, RightParen, LeftBracket, RightBracket, Caret, Content, Root,
59 Mustache,
60 Block,
61 InverseBlock,
62 Partial,
63 CommentNode, ContentNode, Expression,
66 SubExpression,
67 Path,
68 Parameter,
69 ElseBlock,
70
71 Error,
73 Eof,
74}
75
76impl TokenType for HandlebarsTokenType {
77 type Role = UniversalTokenRole;
78 const END_OF_STREAM: Self = Self::Error;
79
80 fn is_ignored(&self) -> bool {
81 false
82 }
83
84 fn role(&self) -> Self::Role {
85 match self {
86 _ => UniversalTokenRole::None,
87 }
88 }
89}