@@ -19,8 +19,7 @@ use std::ascii::AsciiExt;
1919use std:: {
2020 char,
2121 collections:: { BTreeSet , HashMap } ,
22- error, fmt, iter,
23- mem:: replace,
22+ error, fmt,
2423 ops:: Deref ,
2524} ;
2625
@@ -92,22 +91,22 @@ impl Recoverable for SpecificError {
9291 fn recoverable ( & self ) -> bool {
9392 use self :: SpecificError :: * ;
9493
95- match * self {
94+ !matches ! (
95+ self ,
9696 ExpectedEncoding
97- | ExpectedYesNo
98- | InvalidProcessingInstructionTarget
99- | MismatchedElementEndName
100- | InvalidDecimalReference
101- | InvalidHexReference
102- | UnknownNamedReference
103- | DuplicateAttribute
104- | RedefinedNamespace
105- | RedefinedDefaultNamespace
106- | EmptyNamespace
107- | UnknownNamespacePrefix
108- | UnclosedElement => false ,
109- _ => true ,
110- }
97+ | ExpectedYesNo
98+ | InvalidProcessingInstructionTarget
99+ | MismatchedElementEndName
100+ | InvalidDecimalReference
101+ | InvalidHexReference
102+ | UnknownNamedReference
103+ | DuplicateAttribute
104+ | RedefinedNamespace
105+ | RedefinedDefaultNamespace
106+ | EmptyNamespace
107+ | UnknownNamespacePrefix
108+ | UnclosedElement
109+ )
111110 }
112111}
113112
@@ -359,7 +358,7 @@ enum Token<'a> {
359358 DocumentTypeDeclaration ,
360359 Comment ( & ' a str ) ,
361360 ProcessingInstruction ( & ' a str , Option < & ' a str > ) ,
362- Whitespace ( & ' a str ) ,
361+ Whitespace ( # [ allow ( dead_code ) ] & ' a str ) ,
363362 ElementStart ( Span < PrefixedName < ' a > > ) ,
364363 ElementStartClose ,
365364 ElementSelfClose ,
@@ -400,7 +399,7 @@ impl<'a> PullParser<'a> {
400399 }
401400}
402401
403- fn parse_comment < ' a > ( xml : StringPoint < ' a > ) -> XmlProgress < ' a , Token < ' _ > > {
402+ fn parse_comment < ' a > ( xml : StringPoint < ' a > ) -> XmlProgress < ' a , Token < ' a > > {
404403 let ( xml, _) = try_parse ! ( xml
405404 . consume_literal( "<!--" )
406405 . map_err( |_| SpecificError :: ExpectedComment ) ) ;
@@ -569,7 +568,7 @@ fn parse_pi_value(xml: StringPoint<'_>) -> XmlProgress<'_, &str> {
569568 xml. consume_pi_value ( )
570569}
571570
572- fn parse_pi < ' a > ( xml : StringPoint < ' a > ) -> XmlProgress < ' a , Token < ' _ > > {
571+ fn parse_pi < ' a > ( xml : StringPoint < ' a > ) -> XmlProgress < ' a , Token < ' a > > {
573572 let ( xml, _) = try_parse ! ( xml
574573 . consume_literal( "<?" )
575574 . map_err( |_| SpecificError :: ExpectedProcessingInstruction ) ) ;
@@ -727,11 +726,11 @@ fn parse_attribute_reference<'a>(
727726 success ( Token :: ReferenceAttributeValue ( val) , xml)
728727}
729728
730- fn parse_char_data < ' a > ( xml : StringPoint < ' a > ) -> XmlProgress < ' a , Token < ' _ > > {
729+ fn parse_char_data < ' a > ( xml : StringPoint < ' a > ) -> XmlProgress < ' a , Token < ' a > > {
731730 xml. consume_char_data ( ) . map ( Token :: CharData )
732731}
733732
734- fn parse_cdata < ' a > ( xml : StringPoint < ' a > ) -> XmlProgress < ' a , Token < ' _ > > {
733+ fn parse_cdata < ' a > ( xml : StringPoint < ' a > ) -> XmlProgress < ' a , Token < ' a > > {
735734 let ( xml, _) = try_parse ! ( xml. expect_literal( "<![CDATA[" ) ) ;
736735 let ( xml, text) = try_parse ! ( xml. consume_cdata( ) ) ;
737736 let ( xml, _) = try_parse ! ( xml. expect_literal( "]]>" ) ) ;
@@ -922,7 +921,7 @@ impl<'d> DomBuilder<'d> {
922921
923922 fn finish_opening_tag ( & mut self ) -> DomBuilderResult < ( ) > {
924923 let deferred_element = self . element_names . last ( ) . expect ( "Unknown element name" ) ;
925- let attributes = DeferredAttributes :: new ( replace ( & mut self . attributes , Vec :: new ( ) ) ) ;
924+ let attributes = DeferredAttributes :: new ( std :: mem :: take ( & mut self . attributes ) ) ;
926925
927926 attributes. check_duplicates ( ) ?;
928927 let default_namespace = attributes. default_namespace ( ) ?;
@@ -971,7 +970,7 @@ impl<'d> DomBuilder<'d> {
971970 } ;
972971
973972 for ( prefix, ns_uri) in & new_prefix_mappings {
974- element. register_prefix ( * prefix, ns_uri) ;
973+ element. register_prefix ( prefix, ns_uri) ;
975974 }
976975
977976 if !self . seen_top_element {
@@ -1182,24 +1181,17 @@ where
11821181 F : FnOnce ( & str ) ,
11831182{
11841183 match ref_data {
1184+ #[ allow( clippy:: from_str_radix_10) ]
11851185 DecimalChar ( span) => u32:: from_str_radix ( span. value , 10 )
11861186 . ok ( )
11871187 . and_then ( char:: from_u32)
11881188 . ok_or_else ( || span. map ( |_| SpecificError :: InvalidDecimalReference ) )
1189- . and_then ( |c| {
1190- let s: String = iter:: repeat ( c) . take ( 1 ) . collect ( ) ;
1191- cb ( & s) ;
1192- Ok ( ( ) )
1193- } ) ,
1189+ . map ( |c| cb ( & c. to_string ( ) ) ) ,
11941190 HexChar ( span) => u32:: from_str_radix ( span. value , 16 )
11951191 . ok ( )
11961192 . and_then ( char:: from_u32)
11971193 . ok_or_else ( || span. map ( |_| SpecificError :: InvalidHexReference ) )
1198- . and_then ( |c| {
1199- let s: String = iter:: repeat ( c) . take ( 1 ) . collect ( ) ;
1200- cb ( & s) ;
1201- Ok ( ( ) )
1202- } ) ,
1194+ . map ( |c| cb ( & c. to_string ( ) ) ) ,
12031195 Entity ( span) => {
12041196 let s = match span. value {
12051197 "amp" => "&" ,
0 commit comments