@@ -233,13 +233,15 @@ impl CompactEncoding for Header {
233233
234234 fn encode < ' a > ( & self , buffer : & ' a mut [ u8 ] ) -> Result < & ' a mut [ u8 ] , EncodingError > {
235235 let rest = write_array ( & [ 1 , 2 | 4 ] , buffer) ?;
236- let rest = self . key . encode ( rest) ?;
237- let rest = self . manifest . encode ( rest) ?;
238- let rest = self . key_pair . encode ( rest) ?;
239- let rest = self . user_data . encode ( rest) ?;
240- let rest = self . tree . encode ( rest) ?;
241- let rest = self . hints . encode ( rest) ?;
242- Ok ( rest)
236+ Ok ( map_encode ! (
237+ rest,
238+ self . key,
239+ self . manifest,
240+ self . key_pair,
241+ self . user_data,
242+ self . tree,
243+ self . hints
244+ ) )
243245 }
244246
245247 fn decode ( buffer : & [ u8 ] ) -> Result < ( Self , & [ u8 ] ) , EncodingError >
@@ -248,11 +250,11 @@ impl CompactEncoding for Header {
248250 {
249251 let ( [ _version, _flags] , rest) = take_array :: < 2 > ( buffer) ?;
250252 let ( key, rest) = take_array :: < 32 > ( rest) ?;
251- let ( manifest, rest) = Manifest :: decode ( rest ) ? ;
252- let ( key_pair , rest ) = PartialKeypair :: decode ( rest) ? ;
253- let ( user_data , rest ) = < Vec < String > > :: decode ( rest ) ? ;
254- let ( tree , rest ) = HeaderTree :: decode ( rest ) ? ;
255- let ( hints , rest ) = HeaderHints :: decode ( rest ) ? ;
253+ let ( ( manifest, key_pair , user_data , tree , hints ) , rest) = map_decode ! (
254+ rest, [
255+ Manifest , PartialKeypair , Vec <String >, HeaderTree , HeaderHints
256+ ]
257+ ) ;
256258 Ok ( (
257259 Header {
258260 key,
0 commit comments