1#[rustfmt::skip]
5mod generated;
6
7use crate::Edition;
8
9#[allow(unreachable_pub)]
10pub use self::generated::SyntaxKind;
11
12impl From<u16> for SyntaxKind {
13 #[inline]
14 fn from(d: u16) -> SyntaxKind {
15 assert!(d <= (SyntaxKind::__LAST as u16));
16 unsafe { std::mem::transmute::<u16, SyntaxKind>(d) }
17 }
18}
19
20impl From<SyntaxKind> for u16 {
21 #[inline]
22 fn from(k: SyntaxKind) -> u16 {
23 k as u16
24 }
25}
26
27impl SyntaxKind {
28 #[inline]
29 pub fn is_trivia(self) -> bool {
30 matches!(self, SyntaxKind::WHITESPACE | SyntaxKind::COMMENT)
31 }
32
33 #[inline]
35 pub fn is_any_identifier(self) -> bool {
36 self == SyntaxKind::IDENT || self.is_keyword(Edition::LATEST)
38 }
39}