1- use crate :: { Package , VersionInfo } ;
1+ use crate :: { Package , VersionInfo , is_default } ;
22use serde:: { Deserialize , Serialize } ;
33use std:: { convert:: TryFrom , fmt:: Display } ;
44
55#[ derive( Serialize , Deserialize , Debug , PartialEq , Eq , PartialOrd , Ord , Clone ) ]
66pub struct RawVersionInfo {
77 pub packages : Vec < Package > ,
8+ #[ serde( default ) ]
9+ #[ serde( skip_serializing_if = "is_default" ) ]
10+ pub format : u32 ,
811}
912
1013pub enum ValidationError {
@@ -36,6 +39,7 @@ impl TryFrom<RawVersionInfo> for VersionInfo {
3639 } else {
3740 Ok ( VersionInfo {
3841 packages : v. packages ,
42+ format : v. format ,
3943 } )
4044 }
4145 }
@@ -99,6 +103,7 @@ mod tests {
99103 let pkg1 = dummy_package ( 1 , false , vec ! [ 0 ] ) ;
100104 let raw = RawVersionInfo {
101105 packages : vec ! [ pkg0, pkg1] ,
106+ format : 0 ,
102107 } ;
103108 assert ! ( VersionInfo :: try_from( raw) . is_err( ) ) ;
104109 }
@@ -109,6 +114,7 @@ mod tests {
109114 let pkg1 = dummy_package ( 1 , false , vec ! [ ] ) ;
110115 let raw = RawVersionInfo {
111116 packages : vec ! [ pkg0, pkg1] ,
117+ format : 0 ,
112118 } ;
113119 assert ! ( VersionInfo :: try_from( raw) . is_ok( ) ) ;
114120 }
0 commit comments