Skip to content

Commit 0292f3f

Browse files
authored
Split atoms out into a separate crate (#599)
Signed-off-by: Nico Burns <[email protected]>
1 parent a02b136 commit 0292f3f

File tree

24 files changed

+291
-32
lines changed

24 files changed

+291
-32
lines changed

Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[workspace]
22
members = [
3+
"web_atoms",
34
"markup5ever",
45
"html5ever",
56
"rcdom",

html5ever/src/serialize/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
use log::warn;
1111
pub use markup5ever::serialize::{AttrRef, Serialize, Serializer, TraversalScope};
12-
use markup5ever::{local_name, namespace_url, ns};
12+
use markup5ever::{local_name, ns};
1313
use std::io::{self, Write};
1414

1515
use crate::{LocalName, QualName};

html5ever/src/tokenizer/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use crate::util::str::lower_ascii_letter;
2525

2626
use log::{debug, trace};
2727
use mac::format_if;
28-
use markup5ever::{namespace_url, ns, small_char_set, TokenizerResult};
28+
use markup5ever::{ns, small_char_set, TokenizerResult};
2929
use std::borrow::Cow::{self, Borrowed};
3030
use std::cell::{Cell, RefCell, RefMut};
3131
use std::collections::BTreeMap;

html5ever/src/tree_builder/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use crate::tree_builder::tag_sets::*;
3333
use crate::util::str::to_escaped_string;
3434
use log::{debug, log_enabled, warn, Level};
3535
use mac::format_if;
36-
use markup5ever::{expanded_name, local_name, namespace_prefix, namespace_url, ns};
36+
use markup5ever::{expanded_name, local_name, namespace_prefix, ns};
3737

3838
#[macro_use]
3939
mod tag_sets;

html5ever/src/tree_builder/rules.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use crate::tree_builder::{
1919
TreeSink,
2020
};
2121
use crate::QualName;
22-
use markup5ever::{expanded_name, local_name, namespace_url, ns};
22+
use markup5ever::{expanded_name, local_name, ns};
2323
use std::borrow::Cow::Borrowed;
2424

2525
use crate::tendril::SliceExt;

html5ever/src/tree_builder/tag_sets.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//! Various sets of HTML tag names, and macros for declaring them.
1111
1212
use crate::ExpandedName;
13-
use markup5ever::{expanded_name, local_name, namespace_url, ns};
13+
use markup5ever::{expanded_name, local_name, ns};
1414

1515
macro_rules! declare_tag_set_impl ( ($param:ident, $b:ident, $supr:ident, $($tag:tt)+) => (
1616
match $param {

markup5ever/Cargo.toml

+2-8
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ license = "MIT OR Apache-2.0"
66
repository = "https://github.com/servo/html5ever"
77
description = "Common code for xml5ever and html5ever"
88
documentation = "https://docs.rs/markup5ever"
9-
build = "build.rs"
109
categories = [ "parser-implementations", "web-programming" ]
1110
edition = "2021"
1211
rust-version.workspace = true
@@ -15,11 +14,6 @@ rust-version.workspace = true
1514
path = "lib.rs"
1615

1716
[dependencies]
18-
string_cache = "0.8"
19-
phf = "0.11"
17+
web_atoms = { version = "0.1", path = "../web_atoms" }
2018
tendril = "0.4"
21-
log = "0.4"
22-
23-
[build-dependencies]
24-
string_cache_codegen = "0.5.4"
25-
phf_codegen = "0.11"
19+
log = "0.4"

markup5ever/interface/mod.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
use std::cell::Ref;
1212
use std::fmt;
1313
use tendril::StrTendril;
14+
use web_atoms::{LocalName, Namespace, Prefix};
1415

1516
pub use self::tree_builder::{create_element, AppendNode, AppendText, ElementFlags, NodeOrText};
1617
pub use self::tree_builder::{ElemName, Tracer, TreeSink};
1718
pub use self::tree_builder::{LimitedQuirks, NoQuirks, Quirks, QuirksMode};
18-
use super::{LocalName, Namespace, Prefix};
1919

2020
/// An [expanded name], containing the tag and the namespace.
2121
///
@@ -165,8 +165,7 @@ pub mod tree_builder;
165165
/// prefix (when resolved gives namespace_url `https://furniture.rs`)
166166
/// ```
167167
///
168-
/// NOTE: `Prefix`, `LocalName` and `Prefix` are all derivative of
169-
/// `string_cache::atom::Atom` and `Atom` implements `Deref<str>`.
168+
/// NOTE: `Prefix`, `LocalName` and `Prefix` all implement `Deref<str>`.
170169
///
171170
#[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Clone)]
172171
#[cfg_attr(feature = "heap_size", derive(HeapSizeOf))]
@@ -401,7 +400,7 @@ pub struct Attribute {
401400

402401
#[cfg(test)]
403402
mod tests {
404-
use super::Namespace;
403+
use web_atoms::{ns, Namespace};
405404

406405
#[test]
407406
fn ns_macro() {

markup5ever/interface/tree_builder.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
//! It can be used by a parser to create the DOM graph structure in memory.
1313
1414
use crate::interface::{Attribute, ExpandedName, QualName};
15-
use crate::{LocalName, Namespace};
1615
use std::borrow::Cow;
1716
use std::fmt::Debug;
1817
use tendril::StrTendril;
18+
use web_atoms::{LocalName, Namespace};
1919

2020
pub use self::NodeOrText::{AppendNode, AppendText};
2121
pub use self::QuirksMode::{LimitedQuirks, NoQuirks, Quirks};

markup5ever/lib.rs

+11-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313

1414
pub use tendril;
1515

16+
#[macro_use]
17+
extern crate web_atoms;
18+
1619
/// Create a [`SmallCharSet`], with each space-separated number stored in the set.
1720
///
1821
/// # Examples
@@ -34,9 +37,15 @@ macro_rules! small_char_set ( ($($e:expr)+) => (
3437
}
3538
));
3639

37-
include!(concat!(env!("OUT_DIR"), "/generated.rs"));
40+
pub use web_atoms::{
41+
local_name, namespace_prefix, namespace_url, ns, LocalName, LocalNameStaticSet, Namespace,
42+
NamespaceStaticSet, Prefix, PrefixStaticSet,
43+
};
3844

39-
pub mod data;
45+
pub mod data {
46+
pub use web_atoms::C1_REPLACEMENTS;
47+
pub use web_atoms::NAMED_ENTITIES;
48+
}
4049
#[macro_use]
4150
pub mod interface;
4251
pub mod serialize;

rcdom/tests/html-serializer.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use html5ever::serialize::{Serialize, SerializeOpts, Serializer, TraversalScope}
1212
use html5ever::tendril::{SliceExt, StrTendril, TendrilSink};
1313
use html5ever::tokenizer::{TagKind, Token, TokenSink, TokenSinkResult, Tokenizer};
1414
use html5ever::{parse_document, parse_fragment, serialize, QualName};
15-
use markup5ever::{local_name, namespace_url, ns};
15+
use markup5ever::{local_name, ns};
1616
use markup5ever_rcdom::{RcDom, SerializableHandle};
1717

1818
use std::cell::RefCell;

rcdom/tests/html-tokenizer.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use html5ever::tokenizer::{CharacterTokens, EOFToken, NullCharacterToken, ParseE
1919
use html5ever::tokenizer::{CommentToken, DoctypeToken, TagToken, Token};
2020
use html5ever::tokenizer::{Doctype, EndTag, StartTag, Tag};
2121
use html5ever::tokenizer::{TokenSink, TokenSinkResult, Tokenizer, TokenizerOpts};
22-
use html5ever::{namespace_url, ns, Attribute, LocalName, QualName};
22+
use html5ever::{ns, Attribute, LocalName, QualName};
2323
use serde_json::{Map, Value};
2424
use std::cell::RefCell;
2525
use std::ffi::OsStr;

rcdom/tests/html-tree-sink.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use html5ever::tendril::StrTendril;
44
use html5ever::ExpandedName;
55
use html5ever::QualName;
66
use markup5ever::interface::{ElementFlags, NodeOrText, QuirksMode, TreeSink};
7-
use markup5ever::{local_name, namespace_url, ns, Attribute};
7+
use markup5ever::{local_name, ns, Attribute};
88
use markup5ever_rcdom::{Handle, RcDom};
99
use std::borrow::Cow;
1010
use std::cell::{Cell, RefCell};

rcdom/tests/xml-tokenizer.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ use xml5ever::tokenizer::{CommentToken, EmptyTag, EndTag, ShortTag, StartTag, Ta
2626
use xml5ever::tokenizer::{Doctype, DoctypeToken, PIToken, Pi};
2727
use xml5ever::tokenizer::{EOFToken, XmlTokenizer, XmlTokenizerOpts};
2828
use xml5ever::tokenizer::{NullCharacterToken, ParseError, TagToken};
29-
use xml5ever::{namespace_url, ns, Attribute, LocalName, QualName};
29+
use xml5ever::{ns, Attribute, LocalName, QualName};
3030

3131
mod util {
3232
pub mod find_tests;

rcdom/tests/xml-tree-builder.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
// option. This file may not be copied, modified, or distributed
88
// except according to those terms.
99

10-
use markup5ever::{namespace_url, ns};
10+
use markup5ever::ns;
1111
use markup5ever_rcdom::*;
1212
use std::collections::{HashMap, HashSet};
1313
use std::ffi::OsStr;

web_atoms/Cargo.toml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[package]
2+
name = "web_atoms"
3+
version = "0.1.0"
4+
authors = [ "The html5ever Project Developers" ]
5+
license = "MIT OR Apache-2.0"
6+
repository = "https://github.com/servo/html5ever"
7+
description = "Atoms for xml5ever and html5ever"
8+
documentation = "https://docs.rs/web_atoms"
9+
build = "build.rs"
10+
categories = [ "string-interning", "web-programming" ]
11+
edition = "2021"
12+
rust-version.workspace = true
13+
14+
[lib]
15+
path = "lib.rs"
16+
17+
[dependencies]
18+
string_cache = "0.8.8"
19+
phf = "0.11"
20+
21+
[build-dependencies]
22+
string_cache_codegen = "0.5.4"
23+
phf_codegen = "0.11"

0 commit comments

Comments
 (0)