From 083aca9e4261b5ef0cb58c0051333499e19df502 Mon Sep 17 00:00:00 2001 From: Adam Reichold Date: Tue, 10 Jan 2023 19:02:11 +0100 Subject: [PATCH 1/3] Make Clippy happy. --- src/error.rs | 4 +--- src/node.rs | 5 +++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/error.rs b/src/error.rs index 1b2bc9ee..15141eed 100644 --- a/src/error.rs +++ b/src/error.rs @@ -52,9 +52,7 @@ impl<'a> From> for SelectorErrorKind<'a> { match err { BasicParseErrorKind::UnexpectedToken(token) => Self::UnexpectedToken(token), BasicParseErrorKind::EndOfInput => Self::EndOfLine, - BasicParseErrorKind::AtRuleInvalid(rule) => { - Self::InvalidAtRule(rule.clone().to_string()) - } + BasicParseErrorKind::AtRuleInvalid(rule) => Self::InvalidAtRule(rule.to_string()), BasicParseErrorKind::AtRuleBodyInvalid => Self::InvalidAtRuleBody, BasicParseErrorKind::QualifiedRuleInvalid => Self::QualRuleInvalid, } diff --git a/src/node.rs b/src/node.rs index 78d5f940..6a287c38 100644 --- a/src/node.rs +++ b/src/node.rs @@ -1,7 +1,8 @@ //! HTML nodes. -use std::collections::{hash_map, hash_set}; -use std::collections::{HashMap, HashSet}; +#[cfg(not(feature = "deterministic"))] +use std::collections::{hash_map, HashMap}; +use std::collections::{hash_set, HashSet}; use std::fmt; use std::ops::Deref; From 02fb092e8f007a2d07c74206e6d4cf57028c6640 Mon Sep 17 00:00:00 2001 From: Adam Reichold Date: Wed, 11 Jan 2023 10:13:01 +0100 Subject: [PATCH 2/3] Suppress variant-size-differences lint for Node enum as the largest is also the most common variant. --- src/node.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/node.rs b/src/node.rs index 6a287c38..be690511 100644 --- a/src/node.rs +++ b/src/node.rs @@ -12,6 +12,9 @@ use html5ever::{Attribute, LocalName, QualName}; use selectors::attr::CaseSensitivity; /// An HTML node. +// `Element` is usally the most common variant and hence boxing it +// will most likely not improve performance overall. +#[allow(variant_size_differences)] #[derive(Clone, PartialEq, Eq)] pub enum Node { /// The document root. From e6229edfb236dd3b6e7537afb8e900cd9c5721e2 Mon Sep 17 00:00:00 2001 From: Adam Reichold Date: Tue, 10 Jan 2023 19:10:41 +0100 Subject: [PATCH 3/3] Re-export Element trait from selectors to be able to use its methods like parent_element on ElementRef without an additional direct dependency. --- src/lib.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 4f19459f..3ee82b6f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -145,6 +145,8 @@ pub use crate::html::Html; pub use crate::node::Node; pub use crate::selector::Selector; +pub use selectors::Element; + pub mod element_ref; pub mod error; pub mod html;