1pub mod changes;
36mod cost;
37mod engine;
38mod engine_config;
39mod engine_matching;
40mod engine_rules;
41pub mod graph;
42pub mod incremental;
43pub mod multi;
44mod multi_engine;
45mod result;
46pub mod traits;
47
48pub use cost::CostModel;
49pub use engine::{DiffEngine, LargeSbomConfig};
50pub use graph::{GraphDiffConfig, diff_dependency_graph};
51pub use incremental::{
52 CacheHitType, CacheStats, ChangedSections, DiffCache, DiffCacheConfig, DiffCacheKey,
53 IncrementalDiffEngine, IncrementalDiffResult, SectionHashes,
54};
55pub use multi::{
56 ComparisonResult, ComplianceScoreEntry, ComplianceSnapshot, ComponentEvolution,
57 DependencySnapshot, DivergenceType, DivergentComponent, EvolutionSummary,
58 InconsistentComponent, IncrementalChange, LicenseChange as TimelineLicenseChange,
59 LicenseChangeType, MatrixResult, MultiDiffResult, MultiDiffSummary, SbomCluster,
60 SbomClustering, SbomInfo, SecurityImpact, TimelinePair, TimelineResult, VariableComponent,
61 VersionAtPoint, VersionChangeType, VersionSpread, VulnerabilityMatrix, VulnerabilitySnapshot,
62};
63pub use multi_engine::MultiDiffEngine;
64#[cfg(feature = "tui")]
67pub(crate) use multi_engine::classify_version_strings;
68#[cfg(feature = "tui")]
71pub(crate) use multi_engine::strip_purl_version;
72pub use result::ml_metric_higher_is_better;
73pub use result::{
74 CategoryDelta, ChangeSet, ChangeType, ComponentChange, ComponentLicenseChange,
75 ConfidenceInterval, DependencyChange, DependencyChangeType, DependencyGraphChange, DiffResult,
76 DiffSummary, FieldChange, GraphChangeImpact, GraphChangeSummary, GraphChangesByImpact,
77 LicenseChange, LicenseChanges, LicenseConflict, MatchInfo, MatchMetrics, MatchScoreComponent,
78 MetadataChange, MetadataChangeKind, MlRegression, QualityDelta, SlaStatus, VexCoverageSummary,
79 VexStatusChange, VulnerabilityChanges, VulnerabilityDetail,
80};
81pub use traits::{
82 ChangeComputer, ComponentChangeSet, ComponentMatches, DependencyChangeSet, LicenseChangeSet,
83 VulnerabilityChangeSet,
84};