1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//! PureAST - Thread-safe, Span-free AST for parallel processing.
//!
//! # Design Philosophy
//!
//! `syn::File` contains `proc_macro2::Span` which prevents it from being
//! `Send`/`Sync`. PureAST strips all span information, creating a clean
//! data structure that can be safely shared across threads.
//!
//! ## Features
//!
//! - **Thread-safe**: `Send + Sync` - share across threads with `Arc`
//! - **Lightweight**: No span overhead, smaller memory footprint
//! - **Serializable**: Can be serialized for IPC or persistence
//! - **Bidirectional**: Convert to/from `syn::File`
//!
//! ## Usage
//!
//! ```ignore
//! use std::sync::Arc;
//! use ryo_source::pure::PureFile;
//!
//! let pure = PureFile::from_source("fn main() {}")?;
//! let shared = Arc::new(pure);
//!
//! // Now safe to share across threads!
//! let handle = std::thread::spawn({
//! let shared = Arc::clone(&shared);
//! move || shared.functions().len()
//! });
//! ```
pub use ;
pub use *;
pub use ToPure;
pub use ItemKind;
pub use PureParallel;
pub use ;
pub use ;