43 lines
992 B
Rust
43 lines
992 B
Rust
mod node;
|
|
mod token;
|
|
mod element;
|
|
mod builder;
|
|
mod node_cache;
|
|
|
|
use self::element::GreenElement;
|
|
|
|
pub(crate) use self::{element::GreenElementRef, node::GreenChild};
|
|
|
|
pub use self::{
|
|
builder::{Checkpoint, GreenNodeBuilder},
|
|
node::{Children, GreenNode, GreenNodeData},
|
|
node_cache::NodeCache,
|
|
token::{GreenToken, GreenTokenData},
|
|
};
|
|
|
|
/// SyntaxKind is a type tag for each token or node.
|
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
|
pub struct SyntaxKind(pub u16);
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn assert_send_sync() {
|
|
fn f<T: Send + Sync>() {}
|
|
f::<GreenNode>();
|
|
f::<GreenToken>();
|
|
f::<GreenElement>();
|
|
}
|
|
|
|
#[test]
|
|
fn test_size_of() {
|
|
use std::mem::size_of;
|
|
|
|
eprintln!("GreenNode {}", size_of::<GreenNode>());
|
|
eprintln!("GreenToken {}", size_of::<GreenToken>());
|
|
eprintln!("GreenElement {}", size_of::<GreenElement>());
|
|
}
|
|
}
|