@@ -44,7 +44,7 @@ use xml::{reader, writer::XmlEvent};
4444pub ( crate ) struct Bom {
4545 bom_format : BomFormat ,
4646 spec_version : SpecVersion ,
47- version : Option < u32 > ,
47+ version : u32 ,
4848 serial_number : Option < UrnUuid > ,
4949 #[ serde( skip_serializing_if = "Option::is_none" ) ]
5050 metadata : Option < Metadata > ,
@@ -69,7 +69,7 @@ impl TryFrom<models::bom::Bom> for Bom {
6969 Ok ( Self {
7070 bom_format : BomFormat :: CycloneDX ,
7171 spec_version : SpecVersion :: V1_3 ,
72- version : Some ( other. version ) ,
72+ version : other. version ,
7373 serial_number : convert_optional ( other. serial_number ) ,
7474 metadata : try_convert_optional ( other. metadata ) ?,
7575 components : try_convert_optional ( other. components ) ?,
@@ -85,7 +85,7 @@ impl TryFrom<models::bom::Bom> for Bom {
8585impl From < Bom > for models:: bom:: Bom {
8686 fn from ( other : Bom ) -> Self {
8787 Self {
88- version : other. version . unwrap_or ( 1 ) ,
88+ version : other. version ,
8989 serial_number : convert_optional ( other. serial_number ) ,
9090 metadata : convert_optional ( other. metadata ) ,
9191 components : convert_optional ( other. components ) ,
@@ -109,17 +109,15 @@ impl ToXml for Bom {
109109 & self ,
110110 writer : & mut xml:: EventWriter < W > ,
111111 ) -> Result < ( ) , crate :: errors:: XmlWriteError > {
112- let version = self . version . map ( |v| format ! ( "{}" , v ) ) ;
112+ let version = format ! ( "{}" , self . version ) ;
113113 let mut bom_start_element =
114114 XmlEvent :: start_element ( BOM_TAG ) . default_ns ( "http://cyclonedx.org/schema/bom/1.3" ) ;
115115
116116 if let Some ( serial_number) = & self . serial_number {
117117 bom_start_element = bom_start_element. attr ( SERIAL_NUMBER_ATTR , & serial_number. 0 ) ;
118118 }
119119
120- if let Some ( version) = & version {
121- bom_start_element = bom_start_element. attr ( VERSION_ATTR , version) ;
122- }
120+ bom_start_element = bom_start_element. attr ( VERSION_ATTR , version. as_str ( ) ) ;
123121
124122 writer
125123 . write ( bom_start_element)
@@ -196,10 +194,9 @@ impl FromXmlDocument for Bom {
196194 expected_namespace_or_error ( "1.3" , & namespace) ?;
197195 let version =
198196 if let Some ( version) = optional_attribute ( & attributes, VERSION_ATTR ) {
199- let version = u32:: from_xml_value ( VERSION_ATTR , version) ?;
200- Some ( version)
197+ u32:: from_xml_value ( VERSION_ATTR , version) ?
201198 } else {
202- None
199+ 1
203200 } ;
204201 let serial_number =
205202 optional_attribute ( & attributes, SERIAL_NUMBER_ATTR ) . map ( UrnUuid ) ;
@@ -361,7 +358,7 @@ pub(crate) mod test {
361358 Bom {
362359 bom_format : BomFormat :: CycloneDX ,
363360 spec_version : SpecVersion :: V1_3 ,
364- version : Some ( 1 ) ,
361+ version : 1 ,
365362 serial_number : Some ( UrnUuid ( "fake-uuid" . to_string ( ) ) ) ,
366363 metadata : None ,
367364 components : None ,
@@ -377,7 +374,7 @@ pub(crate) mod test {
377374 Bom {
378375 bom_format : BomFormat :: CycloneDX ,
379376 spec_version : SpecVersion :: V1_3 ,
380- version : Some ( 1 ) ,
377+ version : 1 ,
381378 serial_number : Some ( UrnUuid ( "fake-uuid" . to_string ( ) ) ) ,
382379 metadata : Some ( example_metadata ( ) ) ,
383380 components : Some ( example_components ( ) ) ,
0 commit comments