@@ -162,11 +162,13 @@ impl ProcessorBuilder {
162162 mpu : self . mpu . or ( other. mpu . clone ( ) ) ,
163163 }
164164 }
165- fn build ( self , debugs : & Vec < Debug > ) -> Result < Vec < Processor > , Error > {
165+ fn build ( self , debugs : & [ Debug ] ) -> Result < Vec < Processor > , Error > {
166166 let units = self . units . unwrap_or ( 1 ) ;
167167 let name = self . name . clone ( ) ;
168168
169- let map = ( 0 ..units)
169+
170+
171+ ( 0 ..units)
170172 . map ( |unit| {
171173 // The attributes we're interested in may be spread across multiple debug
172174 // attributes defined in the family, subfamily, or device; and which may or may not
@@ -176,7 +178,10 @@ impl ProcessorBuilder {
176178 // family and subfamily debug elements are appended after device debug elements.
177179 let debugs_iterator = debugs. iter ( ) . filter ( |debug| {
178180 // If Pname or Punit are present on the <debug> element, they must match.
179- debug. name . as_ref ( ) . map_or ( true , |n| Some ( n) == name. as_ref ( ) )
181+ debug
182+ . name
183+ . as_ref ( )
184+ . map_or ( true , |n| Some ( n) == name. as_ref ( ) )
180185 && debug. unit . map_or ( true , |u| u == unit)
181186 } ) ;
182187
@@ -204,9 +209,7 @@ impl ProcessorBuilder {
204209 . find_map ( |d| d. default_reset_sequence . clone ( ) ) ,
205210 } )
206211 } )
207- . collect :: < Result < Vec < _ > , _ > > ( ) ;
208-
209- map
212+ . collect :: < Result < Vec < _ > , _ > > ( )
210213 }
211214}
212215
@@ -240,7 +243,7 @@ impl ProcessorsBuilder {
240243 }
241244
242245 fn merge_into ( & mut self , other : Self ) {
243- self . 0 . extend ( other. 0 . into_iter ( ) ) ;
246+ self . 0 . extend ( other. 0 ) ;
244247 }
245248
246249 fn build ( self , debugs : Vec < Debug > ) -> Result < Vec < Processor > , Error > {
@@ -362,12 +365,12 @@ impl DebugsBuilder {
362365
363366impl DebugsBuilder {
364367 fn merge ( mut self , parent : & Self ) -> Self {
365- self . 0 . extend ( parent. 0 . iter ( ) . map ( |v| v . clone ( ) ) ) ;
368+ self . 0 . extend ( parent. 0 . iter ( ) . cloned ( ) ) ;
366369 self
367370 }
368371
369372 fn merge_into ( & mut self , other : Self ) {
370- self . 0 . extend ( other. 0 . into_iter ( ) )
373+ self . 0 . extend ( other. 0 )
371374 }
372375
373376 fn build ( self ) -> Vec < Debug > {
@@ -418,9 +421,9 @@ enum NumberBool {
418421 True ,
419422}
420423
421- impl Into < bool > for NumberBool {
422- fn into ( self ) -> bool {
423- match self {
424+ impl From < NumberBool > for bool {
425+ fn from ( val : NumberBool ) -> Self {
426+ match val {
424427 NumberBool :: True => true ,
425428 NumberBool :: False => false ,
426429 }
@@ -554,7 +557,7 @@ impl FromElem for Algorithm {
554557 let file_name: & str = attr_map ( e, "name" ) ?;
555558 let style = attr_parse ( e, "style" ) . ok ( ) . unwrap_or ( AlgorithmStyle :: Keil ) ;
556559 Ok ( Self {
557- file_name : file_name. replace ( " \\ " , "/" ) . into ( ) ,
560+ file_name : file_name. replace ( '\\' , "/" ) . into ( ) ,
558561 start : attr_parse_hex ( e, "start" ) ?,
559562 size : attr_parse_hex ( e, "size" ) ?,
560563 ram_start : attr_parse_hex ( e, "RAMstart" ) . ok ( ) ,
@@ -680,7 +683,7 @@ impl<'dom> DeviceBuilder<'dom> {
680683 }
681684}
682685
683- fn parse_device < ' dom > ( e : & ' dom Element ) -> Vec < DeviceBuilder < ' dom > > {
686+ fn parse_device ( e : & Element ) -> Vec < DeviceBuilder < ' _ > > {
684687 let mut device = DeviceBuilder :: from_elem ( e) ;
685688 let variants = e
686689 . children ( )
@@ -723,7 +726,7 @@ fn parse_device<'dom>(e: &'dom Element) -> Vec<DeviceBuilder<'dom>> {
723726 }
724727}
725728
726- fn parse_sub_family < ' dom > ( e : & ' dom Element ) -> Vec < DeviceBuilder < ' dom > > {
729+ fn parse_sub_family ( e : & Element ) -> Vec < DeviceBuilder < ' _ > > {
727730 let mut sub_family_device = DeviceBuilder :: from_elem ( e) ;
728731 let devices = e
729732 . children ( )
@@ -808,14 +811,10 @@ pub struct Devices(pub HashMap<String, Device>);
808811impl FromElem for Devices {
809812 fn from_elem ( e : & Element ) -> Result < Self , Error > {
810813 e. children ( )
811- . fold ( Ok ( HashMap :: new ( ) ) , |res, c| match ( res, parse_family ( c) ) {
812- ( Ok ( mut devs) , Ok ( add_this) ) => {
813- devs. extend ( add_this. into_iter ( ) . map ( |dev| ( dev. name . clone ( ) , dev) ) ) ;
814- Ok ( devs)
815- }
816- ( Ok ( _) , Err ( e) ) => Err ( e) ,
817- ( Err ( e) , Ok ( _) ) => Err ( e) ,
818- ( Err ( e) , Err ( _) ) => Err ( e) ,
814+ . try_fold ( HashMap :: new ( ) , |mut res, c| {
815+ let add_this = parse_family ( c) ?;
816+ res. extend ( add_this. into_iter ( ) . map ( |dev| ( dev. name . clone ( ) , dev) ) ) ;
817+ Ok ( res)
819818 } )
820819 . map ( Devices )
821820 }
0 commit comments