pub mod emit;
mod enricher;
mod merger;
mod pruner;
pub use emit::{
EmitError, EmitTarget, FidelityReport, emit, emit_cyclonedx, emit_spdx, preserve_source_json,
};
pub use enricher::enrich_sbom_json;
pub use merger::{DeduplicationStrategy, MergeConfig, MergeError, merge_sbom_json};
pub use pruner::{TailorConfig, tailor_sbom_json};
use serde_json::Value;
pub(crate) trait ValueExt {
fn str_field(&self, key: &str) -> &str;
}
impl ValueExt for Value {
fn str_field(&self, key: &str) -> &str {
self.get(key).and_then(Value::as_str).unwrap_or("")
}
}