@@ -100,14 +100,17 @@ impl Parser for Format {
100100 items. sort_by ( |a, b| a. quantity . cmp ( & b. quantity ) ) ;
101101 for item in & items {
102102 let mut it = BytesStart :: new ( "item" ) ;
103- it. push_attribute ( ( "quantity" , match item. quantity {
104- PluralCategory :: Zero => "zero" ,
105- PluralCategory :: One => "one" ,
106- PluralCategory :: Two => "two" ,
107- PluralCategory :: Few => "few" ,
108- PluralCategory :: Many => "many" ,
109- PluralCategory :: Other => "other" ,
110- } ) ) ;
103+ it. push_attribute ( (
104+ "quantity" ,
105+ match item. quantity {
106+ PluralCategory :: Zero => "zero" ,
107+ PluralCategory :: One => "one" ,
108+ PluralCategory :: Two => "two" ,
109+ PluralCategory :: Few => "few" ,
110+ PluralCategory :: Many => "many" ,
111+ PluralCategory :: Other => "other" ,
112+ } ,
113+ ) ) ;
111114 xml_writer. write_event ( Event :: Start ( it) ) ?;
112115 xml_writer. write_event ( Event :: Text ( BytesText :: new ( & item. value ) ) ) ?;
113116 xml_writer. write_event ( Event :: End ( BytesEnd :: new ( "item" ) ) ) ?;
@@ -165,11 +168,7 @@ impl From<Resource> for Format {
165168
166169impl From < Format > for Resource {
167170 fn from ( value : Format ) -> Self {
168- let mut entries: Vec < Entry > = value
169- . strings
170- . iter ( )
171- . map ( StringResource :: to_entry)
172- . collect ( ) ;
171+ let mut entries: Vec < Entry > = value. strings . iter ( ) . map ( StringResource :: to_entry) . collect ( ) ;
173172
174173 // Convert plurals to entries
175174 for pr in & value. plurals {
@@ -191,7 +190,10 @@ impl From<Format> for Resource {
191190 } ;
192191 entries. push ( Entry {
193192 id : pr. name . clone ( ) ,
194- value : Translation :: Plural ( Plural { id : pr. name . clone ( ) , forms } ) ,
193+ value : Translation :: Plural ( Plural {
194+ id : pr. name . clone ( ) ,
195+ forms,
196+ } ) ,
195197 comment : None ,
196198 status,
197199 custom : HashMap :: new ( ) ,
@@ -323,7 +325,8 @@ fn parse_plurals_resource<R: BufRead>(
323325 _ => { }
324326 }
325327 }
326- let name = name. ok_or_else ( || Error :: InvalidResource ( "plurals tag missing 'name'" . to_string ( ) ) ) ?;
328+ let name =
329+ name. ok_or_else ( || Error :: InvalidResource ( "plurals tag missing 'name'" . to_string ( ) ) ) ?;
327330
328331 let mut buf = Vec :: new ( ) ;
329332 let mut items: Vec < PluralItem > = Vec :: new ( ) ;
@@ -339,17 +342,22 @@ fn parse_plurals_resource<R: BufRead>(
339342 quantity = PluralCategory :: from_str ( & v) . ok ( ) ;
340343 }
341344 }
342- let quantity = quantity. ok_or_else ( || Error :: InvalidResource ( "item missing 'quantity'" . to_string ( ) ) ) ?;
345+ let quantity = quantity
346+ . ok_or_else ( || Error :: InvalidResource ( "item missing 'quantity'" . to_string ( ) ) ) ?;
343347 // Read text content until End(item)
344348 let mut value = String :: new ( ) ;
345349 let mut local_buf = Vec :: new ( ) ;
346350 loop {
347351 match xml_reader. read_event_into ( & mut local_buf) {
348352 Ok ( Event :: Text ( e) ) => {
349- value. push_str ( & e. unescape ( ) . map_err ( Error :: XmlParse ) ?. to_string ( ) ) ;
353+ value. push_str ( e. unescape ( ) . map_err ( Error :: XmlParse ) ?. as_ref ( ) ) ;
350354 }
351355 Ok ( Event :: End ( ref end) ) if end. name ( ) . as_ref ( ) == b"item" => break ,
352- Ok ( Event :: Eof ) => return Err ( Error :: InvalidResource ( "Unexpected EOF inside <item>" . to_string ( ) ) ) ,
356+ Ok ( Event :: Eof ) => {
357+ return Err ( Error :: InvalidResource (
358+ "Unexpected EOF inside <item>" . to_string ( ) ,
359+ ) ) ;
360+ }
353361 Ok ( _) => { }
354362 Err ( e) => return Err ( Error :: XmlParse ( e) ) ,
355363 }
@@ -358,14 +366,22 @@ fn parse_plurals_resource<R: BufRead>(
358366 items. push ( PluralItem { quantity, value } ) ;
359367 }
360368 Ok ( Event :: End ( ref end) ) if end. name ( ) . as_ref ( ) == b"plurals" => break ,
361- Ok ( Event :: Eof ) => return Err ( Error :: InvalidResource ( "Unexpected EOF inside <plurals>" . to_string ( ) ) ) ,
369+ Ok ( Event :: Eof ) => {
370+ return Err ( Error :: InvalidResource (
371+ "Unexpected EOF inside <plurals>" . to_string ( ) ,
372+ ) ) ;
373+ }
362374 Ok ( _) => { }
363375 Err ( e) => return Err ( Error :: XmlParse ( e) ) ,
364376 }
365377 buf. clear ( ) ;
366378 }
367379
368- Ok ( PluralsResource { name, items, translatable } )
380+ Ok ( PluralsResource {
381+ name,
382+ items,
383+ translatable,
384+ } )
369385}
370386
371387#[ cfg( test) ]
@@ -484,10 +500,17 @@ mod tests {
484500 forms. insert ( PluralCategory :: Other , "%d files" . to_string ( ) ) ;
485501
486502 let resource = Resource {
487- metadata : Metadata { language : "en" . into ( ) , domain : String :: new ( ) , custom : HashMap :: new ( ) } ,
503+ metadata : Metadata {
504+ language : "en" . into ( ) ,
505+ domain : String :: new ( ) ,
506+ custom : HashMap :: new ( ) ,
507+ } ,
488508 entries : vec ! [ Entry {
489509 id: "files" . into( ) ,
490- value: Translation :: Plural ( Plural { id: "files" . into( ) , forms } ) ,
510+ value: Translation :: Plural ( Plural {
511+ id: "files" . into( ) ,
512+ forms,
513+ } ) ,
491514 comment: None ,
492515 status: EntryStatus :: Translated ,
493516 custom: HashMap :: new( ) ,
@@ -499,7 +522,15 @@ mod tests {
499522 assert_eq ! ( fmt. plurals. len( ) , 1 ) ;
500523 let pr = & fmt. plurals [ 0 ] ;
501524 assert_eq ! ( pr. name, "files" ) ;
502- assert ! ( pr. items. iter( ) . any( |i| matches!( i. quantity, PluralCategory :: One ) && i. value == "One file" ) ) ;
503- assert ! ( pr. items. iter( ) . any( |i| matches!( i. quantity, PluralCategory :: Other ) && i. value == "%d files" ) ) ;
525+ assert ! (
526+ pr. items
527+ . iter( )
528+ . any( |i| matches!( i. quantity, PluralCategory :: One ) && i. value == "One file" )
529+ ) ;
530+ assert ! (
531+ pr. items
532+ . iter( )
533+ . any( |i| matches!( i. quantity, PluralCategory :: Other ) && i. value == "%d files" )
534+ ) ;
504535 }
505536}
0 commit comments