summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@gnome.org>2022-10-24 15:44:17 -0500
committerFederico Mena Quintero <federico@gnome.org>2022-11-04 09:33:33 -0600
commitcddfb67bde046e54cf4c8aa36e521817c5c04ec5 (patch)
tree8298da5dbcce6a3ff06ed6364e8cd90d37848e62
parent1c5fbb632ad7bf308a9c173e056ae8cea6963c64 (diff)
downloadlibrsvg-cddfb67bde046e54cf4c8aa36e521817c5c04ec5.tar.gz
RequiredFeatures::from_attribute() - make infallible
Again, it has no error cases, anyway. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/763>
-rw-r--r--src/cond.rs18
-rw-r--r--src/element.rs6
2 files changed, 10 insertions, 14 deletions
diff --git a/src/cond.rs b/src/cond.rs
index e5fd9661..99fc99c8 100644
--- a/src/cond.rs
+++ b/src/cond.rs
@@ -64,11 +64,11 @@ pub struct RequiredFeatures(pub bool);
impl RequiredFeatures {
// Parse a requiredFeatures attribute
// http://www.w3.org/TR/SVG/struct.html#RequiredFeaturesAttribute
- pub fn from_attribute(s: &str) -> Result<RequiredFeatures, ValueErrorKind> {
- Ok(RequiredFeatures(
+ pub fn from_attribute(s: &str) -> RequiredFeatures {
+ RequiredFeatures(
s.split_whitespace()
.all(|f| IMPLEMENTED_FEATURES.binary_search(&f).is_ok()),
- ))
+ )
}
/// Evaluate a requiredFeatures value for conditional processing.
@@ -132,14 +132,12 @@ mod tests {
#[test]
fn required_features() {
assert_eq!(
- RequiredFeatures::from_attribute("http://www.w3.org/TR/SVG11/feature#NotExisting")
- .unwrap(),
+ RequiredFeatures::from_attribute("http://www.w3.org/TR/SVG11/feature#NotExisting"),
RequiredFeatures(false)
);
assert_eq!(
- RequiredFeatures::from_attribute("http://www.w3.org/TR/SVG11/feature#BasicFilter")
- .unwrap(),
+ RequiredFeatures::from_attribute("http://www.w3.org/TR/SVG11/feature#BasicFilter"),
RequiredFeatures(true)
);
@@ -147,8 +145,7 @@ mod tests {
RequiredFeatures::from_attribute(
"http://www.w3.org/TR/SVG11/feature#BasicFilter \
http://www.w3.org/TR/SVG11/feature#NotExisting",
- )
- .unwrap(),
+ ),
RequiredFeatures(false)
);
@@ -156,8 +153,7 @@ mod tests {
RequiredFeatures::from_attribute(
"http://www.w3.org/TR/SVG11/feature#BasicFilter \
http://www.w3.org/TR/SVG11/feature#BasicText",
- )
- .unwrap(),
+ ),
RequiredFeatures(true)
);
}
diff --git a/src/element.rs b/src/element.rs
index 6bf820fd..958665fd 100644
--- a/src/element.rs
+++ b/src/element.rs
@@ -200,8 +200,7 @@ impl<T: SetAttributes + Draw> ElementInner<T> {
}
expanded_name!("", "requiredFeatures") => {
- self.required_features =
- Some(RequiredFeatures::from_attribute(value).attribute(attr)?);
+ self.required_features = Some(RequiredFeatures::from_attribute(value));
}
expanded_name!("", "systemLanguage") => {
@@ -218,7 +217,8 @@ impl<T: SetAttributes + Draw> ElementInner<T> {
/// Hands the `attrs` to the node's state, to apply the presentation attributes.
fn set_presentation_attributes(&mut self, session: &Session) {
- self.specified_values.parse_presentation_attributes(session, &self.attributes);
+ self.specified_values
+ .parse_presentation_attributes(session, &self.attributes);
}
// Applies a style declaration to the node's specified_values