1#![warn(clippy::unwrap_used)]
26
27pub mod cli;
28pub mod config;
29pub mod diff;
30#[cfg(feature = "enrichment")]
31pub mod enrichment;
32pub mod error;
33pub mod matching;
34pub mod model;
35pub mod parsers;
36pub mod pipeline;
37pub mod quality;
38pub mod reports;
39pub mod tui;
40pub mod utils;
41
42pub use config::{AppConfig, AppConfigBuilder, ConfigPreset, EnrichmentConfig, TuiConfig};
44pub use config::{
45 BehaviorConfig, FilterConfig, GraphAwareDiffConfig, MatchingConfig, MatchingRulesPathConfig,
46 OutputConfig,
47};
48pub use config::{ConfigError, Validatable};
49pub use config::{DiffConfig, MatrixConfig, MultiDiffConfig, TimelineConfig, ViewConfig};
50pub use diff::{DiffEngine, DiffResult, GraphDiffConfig};
51#[cfg(feature = "enrichment")]
52pub use enrichment::{
53 EnricherConfig, EnrichmentStats, NoOpEnricher, OsvEnricher, OsvEnricherConfig,
54 VulnerabilityEnricher,
55};
56pub use error::{ErrorContext, OptionContext, Result, SbomDiffError};
57pub use matching::{
58 ComponentMatcher, FuzzyMatchConfig, FuzzyMatcher, MatchResult, MatchTier, MatchingRulesConfig,
59 RuleEngine,
60};
61pub use model::{
62 CanonicalId, Component, ComponentSortKey, NormalizedSbom, NormalizedSbomIndex, SbomIndexBuilder,
63};
64pub use parsers::{parse_sbom, parse_sbom_str, SbomParser};
65pub use quality::{QualityGrade, QualityReport, QualityScorer, ScoringProfile};
66#[allow(deprecated)]
67pub use reports::{ReportFormat, ReportGenerator, StreamingReporter, WriterReporter};
68
69pub use tui::{
71 CycleFilter, FilterState, ListNavigation, ListState, OverlayState, SearchState,
72 SearchStateCore, StatusMessage, ViewModelOverlayKind,
73};