squawk_parser/
syntax_kind.rs

1// based on https://github.com/rust-lang/rust-analyzer/blob/d8887c0758bbd2d5f752d5bd405d4491e90e7ed6/crates/parser/src/syntax_kind.rs
2
3pub use crate::generated::syntax_kind::SyntaxKind;
4
5impl From<u16> for SyntaxKind {
6    #[inline]
7    fn from(d: u16) -> SyntaxKind {
8        assert!(d <= (SyntaxKind::__LAST as u16));
9        unsafe { std::mem::transmute::<u16, SyntaxKind>(d) }
10    }
11}
12
13impl From<SyntaxKind> for u16 {
14    #[inline]
15    fn from(k: SyntaxKind) -> u16 {
16        k as u16
17    }
18}
19
20impl SyntaxKind {
21    #[inline]
22    pub fn is_trivia(self) -> bool {
23        matches!(self, SyntaxKind::WHITESPACE | SyntaxKind::COMMENT)
24    }
25}