codeprism_core/
lib.rs

1//! CodePrism - Incremental Polyglot Parser and Graph Builder
2//!
3//! This crate provides the core functionality for parsing source code across
4//! multiple languages, building a universal AST, and maintaining a graph of
5//! code relationships.
6
7#![warn(missing_docs)]
8#![warn(clippy::all)]
9
10pub mod ast;
11pub mod content;
12pub mod error;
13pub mod graph;
14pub mod indexer;
15pub mod linkers;
16pub mod observability;
17pub mod parser;
18pub mod patch;
19pub mod pipeline;
20pub mod repository;
21pub mod resilience;
22pub mod scanner;
23
24pub use ast::{Edge, EdgeKind, Language, Node, NodeId, NodeKind, Span};
25pub use codeprism_utils::{ChangeEvent, ChangeKind, FileWatcher};
26pub use content::search::{ContentSearchManager, SearchQueryBuilder};
27pub use content::{
28    CommentContext, ConfigFormat, ContentChunk, ContentNode, ContentStats, ContentType,
29    DocumentFormat, SearchQuery, SearchResult,
30};
31pub use error::{Error, ErrorContext, ErrorSeverity, RecoveryStrategy, Result};
32pub use graph::{
33    DynamicAttribute, GraphQuery, GraphStore, InheritanceFilter, InheritanceInfo,
34    InheritanceRelation, PathResult, SymbolInfo,
35};
36pub use indexer::{
37    BulkIndexer, IndexingConfig, IndexingProgressReporter, IndexingResult, IndexingStats,
38    MemoryStats,
39};
40pub use linkers::{Linker, RestLinker, SqlLinker, SymbolResolver};
41pub use observability::{
42    ComponentHealth, HealthCheckResult, HealthMonitor, HealthStatus as ObservabilityHealthStatus,
43    MetricsCollector, MetricsSnapshot, OperationMetrics, OperationPerformance, PerformanceMonitor,
44};
45pub use parser::{LanguageParser, LanguageRegistry, ParseContext, ParseResult, ParserEngine};
46pub use patch::{AstPatch, PatchBuilder};
47pub use pipeline::{
48    LoggingEventHandler, MonitoringPipeline, NoOpEventHandler, PipelineConfig, PipelineEvent,
49    PipelineEventHandler, PipelineStats,
50};
51pub use repository::{HealthStatus, RepositoryConfig, RepositoryInfo, RepositoryManager};
52pub use resilience::{CircuitBreaker, CircuitState, ResilienceManager, RetryConfig};
53pub use scanner::{
54    DependencyMode, DiscoveredFile, NoOpProgressReporter, ProgressReporter, RepositoryScanner,
55    ScanResult,
56};
57
58/// Re-export commonly used types
59pub mod prelude {
60    pub use crate::ast::{Edge, EdgeKind, Language, Node, NodeId, NodeKind, Span};
61    pub use crate::content::search::{ContentSearchManager, SearchQueryBuilder};
62    pub use crate::content::{
63        CommentContext, ConfigFormat, ContentChunk, ContentNode, ContentStats, ContentType,
64        DocumentFormat, SearchQuery, SearchResult,
65    };
66    pub use crate::error::{Error, ErrorContext, ErrorSeverity, RecoveryStrategy, Result};
67    pub use crate::graph::{
68        DynamicAttribute, GraphQuery, GraphStore, InheritanceFilter, InheritanceInfo,
69        InheritanceRelation, PathResult, SymbolInfo,
70    };
71    pub use crate::indexer::{
72        BulkIndexer, IndexingConfig, IndexingProgressReporter, IndexingResult, IndexingStats,
73        MemoryStats,
74    };
75    pub use crate::linkers::{Linker, RestLinker, SqlLinker, SymbolResolver};
76    pub use crate::observability::{
77        ComponentHealth, HealthCheckResult, HealthMonitor,
78        HealthStatus as ObservabilityHealthStatus, MetricsCollector, MetricsSnapshot,
79        OperationMetrics, OperationPerformance, PerformanceMonitor,
80    };
81    pub use crate::parser::{
82        LanguageParser, LanguageRegistry, ParseContext, ParseResult, ParserEngine,
83    };
84    pub use crate::patch::{AstPatch, PatchBuilder};
85    pub use crate::pipeline::{
86        LoggingEventHandler, MonitoringPipeline, NoOpEventHandler, PipelineConfig, PipelineEvent,
87        PipelineEventHandler, PipelineStats,
88    };
89    pub use crate::repository::{
90        HealthStatus, RepositoryConfig, RepositoryInfo, RepositoryManager,
91    };
92    pub use crate::resilience::{CircuitBreaker, CircuitState, ResilienceManager, RetryConfig};
93    pub use crate::scanner::{
94        DependencyMode, DiscoveredFile, NoOpProgressReporter, ProgressReporter, RepositoryScanner,
95        ScanResult,
96    };
97    pub use codeprism_utils::{ChangeEvent, ChangeKind, FileWatcher};
98}