Skip to main content

rucc_base/
lib.rs

1//! Arenas, interning, index newtypes and the small data structures the rest of the
2//! compiler is built out of.
3//!
4//! Design: `spec/03-architecture.md`. Layer rank 0, see `spec/18-package-layout.md`.
5//!
6//! Nothing in here knows anything about C. That is deliberate: this is the one crate every
7//! other crate depends on, so anything C-specific that leaks in here becomes impossible to
8//! avoid later.
9//!
10//! # Status
11//!
12//! The index newtypes and the interner are real and used. The arena is a thin wrapper for
13//! now and grows with `M2`.
14//!
15//! This crate is tier 3 in `spec/18-package-layout.md` section 18.5: its Rust API is
16//! explicitly unstable and will change without a major version bump.
17
18#![doc(html_root_url = "https://docs.rs/rucc-base/0.1.0")]
19
20pub mod index;
21pub mod intern;
22
23pub use index::{Idx, IdxRange};
24pub use intern::{Interner, Symbol};