diff options
author | Federico Mena Quintero <federico@gnome.org> | 2022-10-24 15:44:17 -0500 |
---|---|---|
committer | Federico Mena Quintero <federico@gnome.org> | 2022-11-04 09:33:33 -0600 |
commit | cddfb67bde046e54cf4c8aa36e521817c5c04ec5 (patch) | |
tree | 8298da5dbcce6a3ff06ed6364e8cd90d37848e62 | |
parent | 1c5fbb632ad7bf308a9c173e056ae8cea6963c64 (diff) | |
download | librsvg-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.rs | 18 | ||||
-rw-r--r-- | src/element.rs | 6 |
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 |