pub mod spec_v1_5;
pub mod spec_v1_6;
use super::{BillOfMaterials, BomParser};
use spec_v1_5::Bom as Bom_v1_5;
use spec_v1_6::Bom as Bom_v1_6;
pub struct CycloneDx;
impl BomParser for CycloneDx {
fn parse(data: &[u8]) -> Result<BillOfMaterials, crate::KonarrError> {
if let Ok(sbom) = Bom_v1_5::parse(data) {
Ok(sbom.into())
} else if let Ok(sbom) = Bom_v1_6::parse(data) {
Ok(sbom.into())
} else {
Err(crate::KonarrError::ParseSBOM(
"Failed to parse SBOM".to_string(),
))
}
}
}