rowan/
lib.rs

1//! A generic library for lossless syntax trees.
2//! See `examples/s_expressions.rs` for a tutorial.
3#![forbid(
4    // missing_debug_implementations,
5    unconditional_recursion,
6    future_incompatible,
7    // missing_docs,
8)]
9#![deny(unsafe_code)]
10
11#[allow(unsafe_code)]
12mod green;
13#[allow(unsafe_code)]
14pub mod cursor;
15
16pub mod api;
17mod syntax_text;
18mod utility_types;
19
20mod cow_mut;
21#[allow(unsafe_code)]
22mod sll;
23#[allow(unsafe_code)]
24mod arc;
25#[cfg(feature = "serde1")]
26mod serde_impls;
27pub mod ast;
28
29pub use text_size::{TextLen, TextRange, TextSize};
30
31pub use crate::{
32    api::{
33        Language, SyntaxElement, SyntaxElementChildren, SyntaxNode, SyntaxNodeChildren, SyntaxToken,
34    },
35    green::{
36        Checkpoint, Children, GreenNode, GreenNodeBuilder, GreenNodeData, GreenToken,
37        GreenTokenData, NodeCache, SyntaxKind,
38    },
39    syntax_text::SyntaxText,
40    utility_types::{Direction, NodeOrToken, TokenAtOffset, WalkEvent},
41};