1
Fork 0
mirror of https://github.com/RGBCube/cstree synced 2025-07-27 09:07:44 +00:00

Add derive macro for Syntax (used to be Language) (#51)

This commit is contained in:
DQ 2023-04-18 20:10:35 +02:00 committed by GitHub
parent 2aa543036f
commit c5279bae7d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
70 changed files with 1459 additions and 899 deletions

View file

@ -0,0 +1,22 @@
use cstree::{RawSyntaxKind, Syntax};
#[test]
fn basic() {
#[derive(Debug, Clone, Copy, PartialEq, Eq, Syntax)]
#[repr(u32)]
pub enum SyntaxKind {
A,
#[static_text("b")]
B,
}
pub type MySyntax = SyntaxKind;
assert_eq!(MySyntax::into_raw(SyntaxKind::A), RawSyntaxKind(0));
assert_eq!(MySyntax::into_raw(SyntaxKind::B), RawSyntaxKind(1));
assert_eq!(MySyntax::from_raw(RawSyntaxKind(0)), SyntaxKind::A);
assert_eq!(MySyntax::from_raw(RawSyntaxKind(1)), SyntaxKind::B);
assert!(MySyntax::static_text(SyntaxKind::A).is_none());
assert_eq!(MySyntax::static_text(SyntaxKind::B), Some("b"));
}