@@ -101,16 +101,15 @@ fn parse_feed_element(
101101 match reader. read_event_into ( & mut buf) {
102102 Ok ( event @ ( Event :: Start ( _) | Event :: Empty ( _) ) ) => {
103103 let is_empty = matches ! ( event, Event :: Empty ( _) ) ;
104- let e = match & event {
105- Event :: Start ( e) | Event :: Empty ( e) => e,
106- _ => unreachable ! ( ) ,
104+ let ( Event :: Start ( e) | Event :: Empty ( e) ) = & event else {
105+ unreachable ! ( )
107106 } ;
108107
109108 * depth += 1 ;
110109 if * depth > limits. max_nesting_depth {
111110 return Err ( FeedError :: InvalidFormat ( format ! (
112- "XML nesting depth {} exceeds maximum {}" ,
113- depth , limits. max_nesting_depth
111+ "XML nesting depth {depth } exceeds maximum {}" ,
112+ limits. max_nesting_depth
114113 ) ) ) ;
115114 }
116115
@@ -153,7 +152,7 @@ fn parse_feed_element(
153152 b"author" if !is_empty => {
154153 if let Ok ( person) = parse_person ( reader, & mut buf, limits, depth) {
155154 if feed. feed . author . is_none ( ) {
156- feed. feed . author = person. name . clone ( ) ;
155+ feed. feed . author . clone_from ( & person. name ) ;
157156 feed. feed . author_detail = Some ( person. clone ( ) ) ;
158157 }
159158 feed. feed
@@ -200,7 +199,7 @@ fn parse_feed_element(
200199 feed. bozo = true ;
201200 feed. bozo_exception =
202201 Some ( format ! ( "Entry limit exceeded: {}" , limits. max_entries) ) ;
203- skip_element ( reader, & mut buf, limits, depth) ?;
202+ skip_element ( reader, & mut buf, limits, * depth) ?;
204203 * depth = depth. saturating_sub ( 1 ) ;
205204 continue ;
206205 }
@@ -215,7 +214,7 @@ fn parse_feed_element(
215214 }
216215 _ => {
217216 if !is_empty {
218- skip_element ( reader, & mut buf, limits, depth) ?;
217+ skip_element ( reader, & mut buf, limits, * depth) ?;
219218 }
220219 }
221220 }
@@ -246,16 +245,15 @@ fn parse_entry(
246245 match reader. read_event_into ( buf) {
247246 Ok ( event @ ( Event :: Start ( _) | Event :: Empty ( _) ) ) => {
248247 let is_empty = matches ! ( event, Event :: Empty ( _) ) ;
249- let e = match & event {
250- Event :: Start ( e) | Event :: Empty ( e) => e,
251- _ => unreachable ! ( ) ,
248+ let ( Event :: Start ( e) | Event :: Empty ( e) ) = & event else {
249+ unreachable ! ( )
252250 } ;
253251
254252 * depth += 1 ;
255253 if * depth > limits. max_nesting_depth {
256254 return Err ( FeedError :: InvalidFormat ( format ! (
257- "XML nesting depth {} exceeds maximum {}" ,
258- depth , limits. max_nesting_depth
255+ "XML nesting depth {depth } exceeds maximum {}" ,
256+ limits. max_nesting_depth
259257 ) ) ) ;
260258 }
261259
@@ -307,7 +305,7 @@ fn parse_entry(
307305 b"author" if !is_empty => {
308306 if let Ok ( person) = parse_person ( reader, buf, limits, depth) {
309307 if entry. author . is_none ( ) {
310- entry. author = person. name . clone ( ) ;
308+ entry. author . clone_from ( & person. name ) ;
311309 entry. author_detail = Some ( person. clone ( ) ) ;
312310 }
313311 entry. authors . try_push_limited ( person, limits. max_authors ) ;
@@ -338,7 +336,7 @@ fn parse_entry(
338336 }
339337 _ => {
340338 if !is_empty {
341- skip_element ( reader, buf, limits, depth) ?;
339+ skip_element ( reader, buf, limits, * depth) ?;
342340 }
343341 }
344342 }
@@ -414,7 +412,7 @@ fn parse_person(
414412 b"name" => name = Some ( read_text ( reader, buf, limits) ?) ,
415413 b"email" => email = Some ( read_text ( reader, buf, limits) ?) ,
416414 b"uri" => uri = Some ( read_text ( reader, buf, limits) ?) ,
417- _ => skip_element ( reader, buf, limits, depth) ?,
415+ _ => skip_element ( reader, buf, limits, * depth) ?,
418416 }
419417 * depth = depth. saturating_sub ( 1 ) ;
420418 }
@@ -517,15 +515,14 @@ fn parse_atom_source(
517515 if let Some ( l) = Link :: from_attributes (
518516 element. attributes ( ) . flatten ( ) ,
519517 limits. max_attribute_length ,
520- ) {
521- if link. is_none ( ) {
522- link = Some ( l. href ) ;
523- }
518+ ) && link. is_none ( )
519+ {
520+ link = Some ( l. href ) ;
524521 }
525522 skip_to_end ( reader, buf, b"link" ) ?;
526523 }
527524 b"id" => id = Some ( read_text ( reader, buf, limits) ?) ,
528- _ => skip_element ( reader, buf, limits, depth) ?,
525+ _ => skip_element ( reader, buf, limits, * depth) ?,
529526 }
530527 * depth = depth. saturating_sub ( 1 ) ;
531528 }
0 commit comments