[librsvg/attribute-parsers-737: 6/26] structure.rs: use set_attribute()
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg/attribute-parsers-737: 6/26] structure.rs: use set_attribute()
- Date: Fri, 21 Oct 2022 01:06:07 +0000 (UTC)
commit 4617bbef18f40420775009e029a77a9a50b34e73
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Oct 20 12:49:37 2022 -0500
structure.rs: use set_attribute()
src/structure.rs | 72 +++++++++++++++++++++++++++++++++-----------------------
1 file changed, 43 insertions(+), 29 deletions(-)
---
diff --git a/src/structure.rs b/src/structure.rs
index 425cdb599..b91321896 100644
--- a/src/structure.rs
+++ b/src/structure.rs
@@ -7,7 +7,7 @@ use crate::bbox::BoundingBox;
use crate::coord_units::CoordUnits;
use crate::document::{AcquiredNodes, NodeId};
use crate::drawing_ctx::{ClipMode, DrawingCtx, ViewParams};
-use crate::element::{Draw, Element, ElementResult, SetAttributes};
+use crate::element::{set_attribute, Draw, Element, ElementResult, SetAttributes};
use crate::error::*;
use crate::href::{is_href, set_href};
use crate::layout::StackingContext;
@@ -274,13 +274,15 @@ impl Svg {
}
impl SetAttributes for Svg {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
for (attr, value) in attrs.iter() {
match attr.expanded() {
expanded_name!("", "preserveAspectRatio") => {
- self.preserve_aspect_ratio = attr.parse(value)?
+ set_attribute(&mut self.preserve_aspect_ratio, attr.parse(value), session)
+ }
+ expanded_name!("", "viewBox") => {
+ set_attribute(&mut self.vbox, attr.parse(value), session)
}
- expanded_name!("", "viewBox") => self.vbox = attr.parse(value)?,
_ => (),
}
}
@@ -355,7 +357,7 @@ impl Default for Use {
}
impl SetAttributes for Use {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
for (attr, value) in attrs.iter() {
match attr.expanded() {
ref a if is_href(a) => set_href(
@@ -363,10 +365,14 @@ impl SetAttributes for Use {
&mut self.link,
NodeId::parse(value).attribute(attr.clone())?,
),
- expanded_name!("", "x") => self.x = attr.parse(value)?,
- expanded_name!("", "y") => self.y = attr.parse(value)?,
- expanded_name!("", "width") => self.width = attr.parse(value)?,
- expanded_name!("", "height") => self.height = attr.parse(value)?,
+ expanded_name!("", "x") => set_attribute(&mut self.x, attr.parse(value), session),
+ expanded_name!("", "y") => set_attribute(&mut self.y, attr.parse(value), session),
+ expanded_name!("", "width") => {
+ set_attribute(&mut self.width, attr.parse(value), session)
+ }
+ expanded_name!("", "height") => {
+ set_attribute(&mut self.height, attr.parse(value), session)
+ }
_ => (),
}
}
@@ -441,13 +447,15 @@ impl Symbol {
}
impl SetAttributes for Symbol {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
for (attr, value) in attrs.iter() {
match attr.expanded() {
expanded_name!("", "preserveAspectRatio") => {
- self.preserve_aspect_ratio = attr.parse(value)?
+ set_attribute(&mut self.preserve_aspect_ratio, attr.parse(value), session)
+ }
+ expanded_name!("", "viewBox") => {
+ set_attribute(&mut self.vbox, attr.parse(value), session)
}
- expanded_name!("", "viewBox") => self.vbox = attr.parse(value)?,
_ => (),
}
}
@@ -472,13 +480,11 @@ impl ClipPath {
}
impl SetAttributes for ClipPath {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- let result = attrs
- .iter()
- .find(|(attr, _)| attr.expanded() == expanded_name!("", "clipPathUnits"))
- .and_then(|(attr, value)| attr.parse(value).ok());
- if let Some(units) = result {
- self.units = units
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ for (attr, value) in attrs.iter() {
+ if attr.expanded() == expanded_name!("", "clipPathUnits") {
+ set_attribute(&mut self.units, attr.parse(value), session);
+ }
}
Ok(())
@@ -535,15 +541,23 @@ impl Mask {
}
impl SetAttributes for Mask {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
for (attr, value) in attrs.iter() {
match attr.expanded() {
- expanded_name!("", "x") => self.x = attr.parse(value)?,
- expanded_name!("", "y") => self.y = attr.parse(value)?,
- expanded_name!("", "width") => self.width = attr.parse(value)?,
- expanded_name!("", "height") => self.height = attr.parse(value)?,
- expanded_name!("", "maskUnits") => self.units = attr.parse(value)?,
- expanded_name!("", "maskContentUnits") => self.content_units = attr.parse(value)?,
+ expanded_name!("", "x") => set_attribute(&mut self.x, attr.parse(value), session),
+ expanded_name!("", "y") => set_attribute(&mut self.y, attr.parse(value), session),
+ expanded_name!("", "width") => {
+ set_attribute(&mut self.width, attr.parse(value), session)
+ }
+ expanded_name!("", "height") => {
+ set_attribute(&mut self.height, attr.parse(value), session)
+ }
+ expanded_name!("", "maskUnits") => {
+ set_attribute(&mut self.units, attr.parse(value), session)
+ }
+ expanded_name!("", "maskContentUnits") => {
+ set_attribute(&mut self.content_units, attr.parse(value), session)
+ }
_ => (),
}
}
@@ -562,9 +576,9 @@ pub struct Link {
impl SetAttributes for Link {
fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
for (attr, value) in attrs.iter() {
- match attr.expanded() {
- ref a if is_href(a) => set_href(a, &mut self.link, value.to_owned()),
- _ => (),
+ let expanded = attr.expanded();
+ if is_href(&expanded) {
+ set_href(&expanded, &mut self.link, value.to_owned());
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]