From d40fcc001e76455c6abe6d25554a6c8343aca364 Mon Sep 17 00:00:00 2001 From: Jason Boatman Date: Wed, 1 Feb 2023 13:13:01 -0600 Subject: [PATCH 1/2] Added feature flag `atomic` to make use of atomic `StrTendril` type. --- Cargo.toml | 1 + src/html/mod.rs | 7 +++++++ src/html/tree_sink.rs | 20 ++++++++++++++++---- src/lib.rs | 26 ++++++++++++++++++++++++++ src/node.rs | 13 +++++++++++-- 5 files changed, 61 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 8f91409b..4e2628ec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,6 +32,7 @@ optional = true default = ["main"] deterministic = ["indexmap"] main = ["getopts"] +atomic = [] [[bin]] name = "scraper" diff --git a/src/html/mod.rs b/src/html/mod.rs index 5252ada3..b51b6893 100644 --- a/src/html/mod.rs +++ b/src/html/mod.rs @@ -204,4 +204,11 @@ mod tests { .collect(); assert_eq!(result, vec!["element3", "element2", "element1"]); } + + #[cfg(feature = "atomic")] + #[test] + fn html_is_send() { + fn send_sync() {} + send_sync::(); + } } diff --git a/src/html/tree_sink.rs b/src/html/tree_sink.rs index 420fd7b0..f78c1bf5 100644 --- a/src/html/tree_sink.rs +++ b/src/html/tree_sink.rs @@ -1,12 +1,12 @@ -use std::borrow::Cow; - use super::Html; use crate::node::{Comment, Doctype, Element, Node, ProcessingInstruction, Text}; +use crate::tendril_util::make as make_tendril; use ego_tree::NodeId; use html5ever::tendril::StrTendril; use html5ever::tree_builder::{ElementFlags, NodeOrText, QuirksMode, TreeSink}; use html5ever::Attribute; use html5ever::{ExpandedName, QualName}; +use std::borrow::Cow; /// Note: does not support the `