apollo_parser/parser/
language.rs1use crate::SyntaxKind;
2
3pub type SyntaxNode = rowan::SyntaxNode<GraphQLLanguage>;
5pub type SyntaxToken = rowan::SyntaxToken<GraphQLLanguage>;
7pub type SyntaxElement = rowan::SyntaxElement<GraphQLLanguage>;
9pub type SyntaxNodeChildren = rowan::SyntaxNodeChildren<GraphQLLanguage>;
11pub type SyntaxNodePtr = rowan::ast::SyntaxNodePtr<GraphQLLanguage>;
13
14#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
16pub enum GraphQLLanguage {}
17
18impl rowan::Language for GraphQLLanguage {
19 type Kind = SyntaxKind;
20 fn kind_from_raw(raw: rowan::SyntaxKind) -> Self::Kind {
21 assert!(raw.0 <= (SyntaxKind::__LAST as u16));
22 unsafe { std::mem::transmute::<u16, SyntaxKind>(raw.0) }
23 }
24 fn kind_to_raw(kind: Self::Kind) -> rowan::SyntaxKind {
25 rowan::SyntaxKind(kind.into())
26 }
27}