perl_symbol/lib.rs
1//! Unified Perl symbol model: taxonomy, cursor extraction, search indexing, and AST projection.
2//!
3//! This crate consolidates the former `perl-symbol-types`, `perl-symbol-cursor`,
4//! `perl-symbol-index`, and `perl-symbol-surface` microcrates into a single published
5//! facade (see ADR-0041). Internal module boundaries are preserved; the public surface
6//! is defined by `api.rs`.
7//!
8//! # Modules
9//!
10//! - [`types`] — Symbol taxonomy: `SymbolKind`, `VarKind`, and LSP mappings
11//! - [`cursor`] — Cursor-based symbol extraction helpers
12//! - [`index`] — Trie + inverted-index symbol search
13//! - [`surface`] — Projection layer: derives symbol views from Perl AST
14//!
15//! # Quick start
16//!
17//! ```rust,ignore
18//! use perl_symbol::{SymbolKind, VarKind};
19//!
20//! let var = SymbolKind::Variable(VarKind::Scalar);
21//! assert_eq!(var.sigil(), Some("$"));
22//! ```
23
24pub mod cursor;
25pub mod index;
26pub mod surface;
27pub mod types;
28
29pub mod api;
30pub use api::*;