sbom_tools/serialization/
mod.rs1pub mod emit;
10mod enricher;
11mod merger;
12mod pruner;
13
14pub use emit::{
15 EmitError, EmitTarget, FidelityReport, emit, emit_cyclonedx, emit_spdx, preserve_source_json,
16};
17pub use enricher::enrich_sbom_json;
18pub use merger::{DeduplicationStrategy, MergeConfig, MergeError, merge_sbom_json};
19pub use pruner::{TailorConfig, tailor_sbom_json};
20
21use serde_json::Value;
22
23pub(crate) trait ValueExt {
25 fn str_field(&self, key: &str) -> &str;
27}
28
29impl ValueExt for Value {
30 fn str_field(&self, key: &str) -> &str {
31 self.get(key).and_then(Value::as_str).unwrap_or("")
32 }
33}