pub struct Differ;Expand description
SBOM comparison engine.
Compares two SBOMs and produces a Diff describing the changes.
Components are matched first by ID (purl), then by identity (name + ecosystem).
Implementations§
Source§impl Differ
impl Differ
Sourcepub fn diff(old: &Sbom, new: &Sbom, only: Option<&[Field]>) -> Diff
pub fn diff(old: &Sbom, new: &Sbom, only: Option<&[Field]>) -> Diff
Compares two SBOMs and returns the differences.
Both SBOMs are normalized before comparison to ignore irrelevant differences like ordering or metadata timestamps.
§Arguments
old- The baseline SBOMnew- The SBOM to compare against the baselineonly- Optional filter to limit comparison to specific fields
§Example
use sbom_diff::{Differ, Field};
use sbom_model::Sbom;
let old = Sbom::default();
let new = Sbom::default();
// Compare all fields
let diff = Differ::diff(&old, &new, None);
// Compare only version and license changes
let diff = Differ::diff(&old, &new, Some(&[Field::Version, Field::License]));Auto Trait Implementations§
impl Freeze for Differ
impl RefUnwindSafe for Differ
impl Send for Differ
impl Sync for Differ
impl Unpin for Differ
impl UnsafeUnpin for Differ
impl UnwindSafe for Differ
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more