@@ -424,21 +424,21 @@ impl<'de> Deserialize<'de> for BranchStatus {
424
424
}
425
425
}
426
426
427
- #[ derive( Deserialize , Debug ) ]
427
+ #[ derive( Deserialize , Serialize , Debug , Clone ) ]
428
428
pub struct PackageBuildMetaDisable {
429
429
#[ serde( default , rename = "@repository" ) ]
430
430
pub repository : Option < String > ,
431
431
#[ serde( default , rename = "@arch" ) ]
432
432
pub arch : Option < String > ,
433
433
}
434
434
435
- #[ derive( Deserialize , Debug , Default ) ]
435
+ #[ derive( Deserialize , Serialize , Debug , Default , Clone ) ]
436
436
pub struct PackageBuildMeta {
437
437
#[ serde( rename = "disable" ) ]
438
438
pub disabled : Vec < PackageBuildMetaDisable > ,
439
439
}
440
440
441
- #[ derive( Deserialize , Debug ) ]
441
+ #[ derive( Deserialize , Serialize , Debug , Clone ) ]
442
442
pub struct PackageMeta {
443
443
#[ serde( rename = "@name" ) ]
444
444
pub name : String ,
@@ -972,6 +972,29 @@ impl<'a> PackageBuilder<'a> {
972
972
self . client . request ( u) . await
973
973
}
974
974
975
+ pub async fn set_meta ( & self , meta : & PackageMeta ) -> Result < ( ) > {
976
+ let mut u = self . client . base . clone ( ) ;
977
+ u. path_segments_mut ( )
978
+ . map_err ( |_| Error :: InvalidUrl ) ?
979
+ . push ( "source" )
980
+ . push ( & self . project )
981
+ . push ( & self . package )
982
+ . push ( "_meta" ) ;
983
+
984
+ let mut body = Vec :: new ( ) ;
985
+ quick_xml:: se:: to_writer ( & mut body, meta) ?;
986
+
987
+ Client :: send_with_error (
988
+ self . client
989
+ . authenticated_request ( Method :: PUT , u)
990
+ . header ( CONTENT_TYPE , "application/xml" )
991
+ . body ( body) ,
992
+ )
993
+ . await ?;
994
+
995
+ Ok ( ( ) )
996
+ }
997
+
975
998
pub async fn source_file ( & self , file : & str ) -> Result < impl Stream < Item = Result < Bytes > > > {
976
999
let mut u = self . client . base . clone ( ) ;
977
1000
u. path_segments_mut ( )
0 commit comments