summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@gnome.org>2023-02-20 11:42:16 -0600
committerFederico Mena Quintero <federico@gnome.org>2023-02-20 12:15:49 -0600
commit0e53abea159f46a90a7174590e622fd3ccc9828f (patch)
tree605271df566c6caa611d8c3ceb05ca59a74e4dc6
parent3092a35d877062dd9f051fb00aade3531c710949 (diff)
downloadlibrsvg-0e53abea159f46a90a7174590e622fd3ccc9828f.tar.gz
(#925): Cargo.toml: Update to selectors-0.24.0 and cssparser-0.29.0 together
css.rs: Update for changes in the AtRuleParser trait's API Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/799>
-rw-r--r--Cargo.lock82
-rw-r--r--Cargo.toml4
-rw-r--r--src/css.rs32
3 files changed, 56 insertions, 62 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 3b0c8cd4..3d464264 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -113,9 +113,9 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
[[package]]
name = "bstr"
-version = "1.2.0"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7f0778972c64420fdedc63f09919c8a88bda7b25135357fd25a5d9f3257e832"
+checksum = "5ffdb39cb703212f3c11973452c2861b972f757b021158f3516ba10f2fa8b2c1"
dependencies = [
"memchr",
"once_cell",
@@ -249,9 +249,9 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.1.4"
+version = "4.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76"
+checksum = "ec0b0588d44d4d63a87dbd75c136c166bbfd9a86a31cb89e09906521c7d3f5e3"
dependencies = [
"bitflags",
"clap_derive",
@@ -264,11 +264,11 @@ dependencies = [
[[package]]
name = "clap_complete"
-version = "4.1.1"
+version = "4.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6540eedc41f8a5a76cf3d8d458057dcdf817be4158a55b5f861f7a5483de75"
+checksum = "bd125be87bf4c255ebc50de0b7f4d2a6201e8ac3dc86e39c0ad081dc5e7236fe"
dependencies = [
- "clap 4.1.4",
+ "clap 4.1.6",
]
[[package]]
@@ -426,15 +426,15 @@ dependencies = [
[[package]]
name = "cssparser"
-version = "0.28.1"
+version = "0.29.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1db8599a9761b371751fbf13e076fa03c6e1a78f8c5288e6ab9467f10a2322c1"
+checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa"
dependencies = [
"cssparser-macros",
"dtoa-short",
- "itoa 0.4.8",
+ "itoa",
"matches",
- "phf 0.8.0",
+ "phf 0.10.1",
"proc-macro2",
"quote",
"smallvec",
@@ -453,9 +453,9 @@ dependencies = [
[[package]]
name = "cxx"
-version = "1.0.90"
+version = "1.0.91"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90d59d9acd2a682b4e40605a242f6670eaa58c5957471cbf85e8aa6a0b97a5e8"
+checksum = "86d3488e7665a7a483b57e25bdd90d0aeb2bc7608c8d0346acf2ad3f1caf1d62"
dependencies = [
"cc",
"cxxbridge-flags",
@@ -465,9 +465,9 @@ dependencies = [
[[package]]
name = "cxx-build"
-version = "1.0.90"
+version = "1.0.91"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebfa40bda659dd5c864e65f4c9a2b0aff19bea56b017b9b77c73d3766a453a38"
+checksum = "48fcaf066a053a41a81dfb14d57d99738b767febb8b735c3016e469fac5da690"
dependencies = [
"cc",
"codespan-reporting",
@@ -480,15 +480,15 @@ dependencies = [
[[package]]
name = "cxxbridge-flags"
-version = "1.0.90"
+version = "1.0.91"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "457ce6757c5c70dc6ecdbda6925b958aae7f959bda7d8fb9bde889e34a09dc03"
+checksum = "a2ef98b8b717a829ca5603af80e1f9e2e48013ab227b68ef37872ef84ee479bf"
[[package]]
name = "cxxbridge-macro"
-version = "1.0.90"
+version = "1.0.91"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebf883b7aacd7b2aeb2a7b338648ee19f57c140d4ee8e52c68979c6b2f7f2263"
+checksum = "086c685979a698443656e5cf7856c95c642295a38599f12fb1ff76fb28d19892"
dependencies = [
"proc-macro2",
"quote",
@@ -649,9 +649,9 @@ dependencies = [
[[package]]
name = "fastrand"
-version = "1.8.0"
+version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
dependencies = [
"instant",
]
@@ -1041,12 +1041,6 @@ dependencies = [
[[package]]
name = "itoa"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
-
-[[package]]
-name = "itoa"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
@@ -1104,7 +1098,7 @@ dependencies = [
"cairo-rs",
"cast",
"chrono",
- "clap 4.1.4",
+ "clap 4.1.6",
"clap_complete",
"criterion",
"cssparser",
@@ -1208,7 +1202,7 @@ dependencies = [
"chrono",
"encoding",
"flate2",
- "itoa 1.0.5",
+ "itoa",
"linked-hash-map",
"log",
"pom",
@@ -1419,9 +1413,9 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.17.0"
+version = "1.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
+checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
[[package]]
name = "oorandom"
@@ -1529,9 +1523,7 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
dependencies = [
- "phf_macros",
"phf_shared 0.8.0",
- "proc-macro-hack",
]
[[package]]
@@ -1540,7 +1532,9 @@ version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
dependencies = [
+ "phf_macros",
"phf_shared 0.10.0",
+ "proc-macro-hack",
]
[[package]]
@@ -1585,12 +1579,12 @@ dependencies = [
[[package]]
name = "phf_macros"
-version = "0.8.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c"
+checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
dependencies = [
- "phf_generator 0.8.0",
- "phf_shared 0.8.0",
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
"proc-macro-hack",
"proc-macro2",
"quote",
@@ -2068,9 +2062,9 @@ checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2"
[[package]]
name = "selectors"
-version = "0.23.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdea87c686be721aab36607728047801ee21561bfdbd6bf0da7ace2536d5879f"
+checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416"
dependencies = [
"bitflags",
"cssparser",
@@ -2131,16 +2125,16 @@ version = "1.0.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76"
dependencies = [
- "itoa 1.0.5",
+ "itoa",
"ryu",
"serde",
]
[[package]]
name = "servo_arc"
-version = "0.1.1"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432"
+checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741"
dependencies = [
"nodrop",
"stable_deref_trait",
@@ -2182,9 +2176,9 @@ checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
[[package]]
name = "slab"
-version = "0.4.7"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
dependencies = [
"autocfg",
]
diff --git a/Cargo.toml b/Cargo.toml
index 3ccdeebb..2f6f1650 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -58,7 +58,7 @@ cast = "0.3.0"
chrono = "0.4.0" # rsvg-convert
clap = { version = "4.0.17", features = ["cargo", "derive"] } # rsvg-convert
clap_complete = "4.0.5" # rsvg-convert
-cssparser = "0.28.0"
+cssparser = "0.29.0"
data-url = "0.2.0"
encoding = "0.2.33"
float-cmp = "0.9.0"
@@ -79,7 +79,7 @@ rayon = "1"
rctree = "0.5.0"
regex = "1.7.1"
rgb = { version="0.8", features=["argb"] }
-selectors = "0.23.0"
+selectors = "0.24.0"
string_cache = "0.8.0"
thiserror = "1.0"
tinyvec = { version = "1.2.0", features = ["alloc"] }
diff --git a/src/css.rs b/src/css.rs
index 10ac8243..0a8ddf0e 100644
--- a/src/css.rs
+++ b/src/css.rs
@@ -74,8 +74,8 @@
//! matches by specificity and apply the result to each element.
use cssparser::{
- self, match_ignore_ascii_case, parse_important, AtRuleParser, AtRuleType, BasicParseErrorKind,
- CowRcStr, DeclarationListParser, DeclarationParser, Parser, ParserInput, ParserState,
+ self, match_ignore_ascii_case, parse_important, AtRuleParser, BasicParseErrorKind, CowRcStr,
+ DeclarationListParser, DeclarationParser, Parser, ParserInput, ParserState,
QualifiedRuleParser, RuleListParser, SourceLocation, ToCss, _cssparser_internal_to_lowercase,
};
use data_url::mime::Mime;
@@ -142,8 +142,7 @@ impl<'i> DeclarationParser<'i> for DeclParser {
// implementation in the future, although this may require keeping track of the
// CSS parsing state like Servo does.
impl<'i> AtRuleParser<'i> for DeclParser {
- type PreludeBlock = ();
- type PreludeNoBlock = ();
+ type Prelude = ();
type AtRule = Declaration;
type Error = ValueErrorKind;
}
@@ -302,8 +301,7 @@ impl<'i> QualifiedRuleParser<'i> for RuleParser {
//
// This only handles the `@import` at-rule.
impl<'i> AtRuleParser<'i> for RuleParser {
- type PreludeBlock = ();
- type PreludeNoBlock = AtRulePrelude;
+ type Prelude = AtRulePrelude;
type AtRule = Rule;
type Error = ParseErrorKind<'i>;
@@ -312,15 +310,15 @@ impl<'i> AtRuleParser<'i> for RuleParser {
&mut self,
name: CowRcStr<'i>,
input: &mut Parser<'i, 't>,
- ) -> Result<
- AtRuleType<Self::PreludeNoBlock, Self::PreludeBlock>,
- cssparser::ParseError<'i, Self::Error>,
- > {
- match_ignore_ascii_case! { &name,
+ ) -> Result<Self::Prelude, cssparser::ParseError<'i, Self::Error>> {
+ match_ignore_ascii_case! {
+ &name,
+
+ // FIXME: at the moment we ignore media queries
+
"import" => {
- // FIXME: at the moment we ignore media queries
let url = input.expect_url_or_string()?.as_ref().to_owned();
- Ok(AtRuleType::WithoutBlock(AtRulePrelude::Import(url)))
+ Ok(AtRulePrelude::Import(url))
},
_ => Err(input.new_error(BasicParseErrorKind::AtRuleInvalid(name))),
@@ -329,12 +327,14 @@ impl<'i> AtRuleParser<'i> for RuleParser {
fn rule_without_block(
&mut self,
- prelude: Self::PreludeNoBlock,
+ prelude: Self::Prelude,
_start: &ParserState,
- ) -> Self::AtRule {
+ ) -> Result<Self::AtRule, ()> {
let AtRulePrelude::Import(url) = prelude;
- Rule::AtRule(AtRule::Import(url))
+ Ok(Rule::AtRule(AtRule::Import(url)))
}
+
+ // When we implement at-rules with blocks, implement the trait's parse_block() method here.
}
/// Dummy type required by the SelectorImpl trait.