Skip to main content

only_syntax/
cst.rs

1use rowan::{GreenNodeBuilder, Language, SyntaxKind as RowanSyntaxKind};
2
3use crate::SyntaxKind;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
6pub enum OnlyLanguage {}
7
8impl Language for OnlyLanguage {
9    type Kind = SyntaxKind;
10
11    fn kind_from_raw(raw: RowanSyntaxKind) -> Self::Kind {
12        SyntaxKind::from(raw)
13    }
14
15    fn kind_to_raw(kind: Self::Kind) -> RowanSyntaxKind {
16        kind.into()
17    }
18}
19
20pub type SyntaxNode = rowan::SyntaxNode<OnlyLanguage>;
21pub type SyntaxToken = rowan::SyntaxToken<OnlyLanguage>;
22
23pub fn builder() -> GreenNodeBuilder<'static> {
24    GreenNodeBuilder::new()
25}