codeprysm_core/lazy/
mod.rs

1//! Lazy-Loading Graph Module
2//!
3//! This module provides lazy-loading capabilities for large code graphs:
4//! - SQLite-backed partition storage
5//! - On-demand partition loading into petgraph
6//! - Memory-based eviction with LRU tracking
7//! - Cross-partition edge indexing
8//!
9//! # Architecture
10//!
11//! ```text
12//! LazyGraphManager
13//! ├── PetCodeGraph (runtime graph, all loaded partitions)
14//! ├── PartitionRegistry (tracks loaded partitions)
15//! ├── MemoryBudgetCache (LRU eviction by bytes)
16//! └── CrossRefIndex (cross-partition edges)
17//!
18//! Storage:
19//! ├── manifest.json (file → partition mapping)
20//! ├── partitions/*.db (SQLite partition files)
21//! └── cross_refs.db (cross-partition edges)
22//! ```
23
24pub mod cache;
25pub mod cross_refs;
26pub mod manager;
27pub mod partition;
28pub mod partitioner;
29pub mod schema;
30
31// Re-exports
32pub use cache::{
33    CacheMetrics, MemoryBudgetCache, PartitionStats as CachePartitionStats, estimate_memory,
34};
35pub use cross_refs::{
36    CROSS_REFS_SCHEMA_VERSION, CrossRef, CrossRefError, CrossRefIndex, CrossRefStore,
37};
38pub use manager::{LazyGraphError, LazyGraphManager, LazyGraphStats, Manifest, ManifestEntry};
39pub use partition::{PartitionConnection, PartitionError, PartitionStats};
40pub use partitioner::{GraphPartitioner, PartitionerError, PartitioningStats};
41pub use schema::{
42    EDGE_COLUMNS, NODE_COLUMNS, PARTITION_SCHEMA_VERSION, SCHEMA_CREATE_EDGES,
43    SCHEMA_CREATE_INDEXES, SCHEMA_CREATE_METADATA, SCHEMA_CREATE_NODES,
44};