Skip to main content

miden_rowan/
lib.rs

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