[librsvg] Length: remove the 'dir' field
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] Length: remove the 'dir' field
- Date: Tue, 22 Jan 2019 01:49:07 +0000 (UTC)
commit 78f39807ce75e176840ec049539d9897f53316d5
Author: Federico Mena Quintero <federico gnome org>
Date: Mon Jan 21 19:35:56 2019 -0600
Length: remove the 'dir' field
This is now embodied into the
LengthHorizontal/LengthVertical/LengthBoth types. Yay!
rsvg_internals/src/length.rs | 98 +++++++++-----------------------------------
1 file changed, 20 insertions(+), 78 deletions(-)
---
diff --git a/rsvg_internals/src/length.rs b/rsvg_internals/src/length.rs
index 8db1b79f..75ed884d 100644
--- a/rsvg_internals/src/length.rs
+++ b/rsvg_internals/src/length.rs
@@ -40,7 +40,7 @@ macro_rules! define_length_type {
impl $name {
pub fn new(length: f64, unit: LengthUnit) -> Self {
- $name(Length::new(length, unit, $dir))
+ $name(Length::new(length, unit))
}
pub fn length(&self) -> f64 {
@@ -97,13 +97,13 @@ macro_rules! define_length_type {
}
pub fn from_cssparser(parser: &mut Parser<'_, '_>) -> Result<Self, ValueErrorKind> {
- Ok($name(Length::from_cssparser(parser, $dir)?))
+ Ok($name(Length::from_cssparser(parser)?))
}
}
impl Default for $name {
fn default() -> Self {
- $name(Length::new(0.0, LengthUnit::Default, $dir))
+ $name(Length::new(0.0, LengthUnit::Default))
}
}
@@ -112,7 +112,7 @@ macro_rules! define_length_type {
type Err = ValueErrorKind;
fn parse(parser: &mut Parser<'_, '_>, _: ()) -> Result<$name, ValueErrorKind> {
- Ok($name(Length::parse(parser, $dir)?))
+ Ok($name(Length::parse(parser, ())?))
}
}
};
@@ -140,7 +140,6 @@ define_length_type!(LengthBoth, LengthDir::Both);
struct Length {
pub length: f64,
pub unit: LengthUnit,
- dir: LengthDir,
}
pub const POINTS_PER_INCH: f64 = 72.0;
@@ -166,11 +165,11 @@ fn make_err() -> ValueErrorKind {
}
impl Parse for Length {
- type Data = LengthDir;
+ type Data = ();
type Err = ValueErrorKind;
- fn parse(parser: &mut Parser<'_, '_>, dir: LengthDir) -> Result<Length, ValueErrorKind> {
- let length = Length::from_cssparser(parser, dir)?;
+ fn parse(parser: &mut Parser<'_, '_>, _: ()) -> Result<Length, ValueErrorKind> {
+ let length = Length::from_cssparser(parser)?;
parser.expect_exhausted().map_err(|_| make_err())?;
@@ -179,12 +178,8 @@ impl Parse for Length {
}
impl Length {
- fn new(l: f64, unit: LengthUnit, dir: LengthDir) -> Length {
- Length {
- length: l,
- unit,
- dir,
- }
+ fn new(l: f64, unit: LengthUnit) -> Length {
+ Length { length: l, unit }
}
/// Returns the raw length after asserting units are either default or percent.
@@ -209,10 +204,7 @@ impl Length {
}
}
- pub fn from_cssparser(
- parser: &mut Parser<'_, '_>,
- dir: LengthDir,
- ) -> Result<Length, ValueErrorKind> {
+ pub fn from_cssparser(parser: &mut Parser<'_, '_>) -> Result<Length, ValueErrorKind> {
let length = {
let token = parser.next().map_err(|_| {
ValueErrorKind::Parse(ParseError::new(
@@ -224,13 +216,11 @@ impl Length {
Token::Number { value, .. } => Length {
length: f64::from(value),
unit: LengthUnit::Default,
- dir,
},
Token::Percentage { unit_value, .. } => Length {
length: f64::from(unit_value),
unit: LengthUnit::Percent,
- dir,
},
Token::Dimension {
@@ -242,49 +232,41 @@ impl Length {
"em" => Length {
length: value,
unit: LengthUnit::FontEm,
- dir,
},
"ex" => Length {
length: value,
unit: LengthUnit::FontEx,
- dir,
},
"pt" => Length {
length: value / POINTS_PER_INCH,
unit: LengthUnit::Inch,
- dir,
},
"in" => Length {
length: value,
unit: LengthUnit::Inch,
- dir,
},
"cm" => Length {
length: value / CM_PER_INCH,
unit: LengthUnit::Inch,
- dir,
},
"mm" => Length {
length: value / MM_PER_INCH,
unit: LengthUnit::Inch,
- dir,
},
"pc" => Length {
length: value / PICA_PER_INCH,
unit: LengthUnit::Inch,
- dir,
},
"px" => Length {
length: value,
unit: LengthUnit::Default,
- dir,
},
_ => return Err(make_err()),
@@ -377,20 +359,12 @@ mod tests {
fn parses_default() {
assert_eq!(
LengthHorizontal::parse_str("42", ()),
- Ok(LengthHorizontal(Length::new(
- 42.0,
- LengthUnit::Default,
- LengthDir::Horizontal
- )))
+ Ok(LengthHorizontal(Length::new(42.0, LengthUnit::Default,)))
);
assert_eq!(
LengthHorizontal::parse_str("-42px", ()),
- Ok(LengthHorizontal(Length::new(
- -42.0,
- LengthUnit::Default,
- LengthDir::Horizontal
- )))
+ Ok(LengthHorizontal(Length::new(-42.0, LengthUnit::Default,)))
);
}
@@ -398,11 +372,7 @@ mod tests {
fn parses_percent() {
assert_eq!(
LengthHorizontal::parse_str("50.0%", ()),
- Ok(LengthHorizontal(Length::new(
- 0.5,
- LengthUnit::Percent,
- LengthDir::Horizontal
- )))
+ Ok(LengthHorizontal(Length::new(0.5, LengthUnit::Percent,)))
);
}
@@ -410,11 +380,7 @@ mod tests {
fn parses_font_em() {
assert_eq!(
LengthVertical::parse_str("22.5em", ()),
- Ok(LengthVertical(Length::new(
- 22.5,
- LengthUnit::FontEm,
- LengthDir::Vertical
- )))
+ Ok(LengthVertical(Length::new(22.5, LengthUnit::FontEm,)))
);
}
@@ -422,11 +388,7 @@ mod tests {
fn parses_font_ex() {
assert_eq!(
LengthVertical::parse_str("22.5ex", ()),
- Ok(LengthVertical(Length::new(
- 22.5,
- LengthUnit::FontEx,
- LengthDir::Vertical
- )))
+ Ok(LengthVertical(Length::new(22.5, LengthUnit::FontEx,)))
);
}
@@ -434,47 +396,27 @@ mod tests {
fn parses_physical_units() {
assert_eq!(
LengthBoth::parse_str("72pt", ()),
- Ok(LengthBoth(Length::new(
- 1.0,
- LengthUnit::Inch,
- LengthDir::Both
- )))
+ Ok(LengthBoth(Length::new(1.0, LengthUnit::Inch,)))
);
assert_eq!(
LengthBoth::parse_str("-22.5in", ()),
- Ok(LengthBoth(Length::new(
- -22.5,
- LengthUnit::Inch,
- LengthDir::Both
- )))
+ Ok(LengthBoth(Length::new(-22.5, LengthUnit::Inch,)))
);
assert_eq!(
LengthBoth::parse_str("-254cm", ()),
- Ok(LengthBoth(Length::new(
- -100.0,
- LengthUnit::Inch,
- LengthDir::Both
- )))
+ Ok(LengthBoth(Length::new(-100.0, LengthUnit::Inch,)))
);
assert_eq!(
LengthBoth::parse_str("254mm", ()),
- Ok(LengthBoth(Length::new(
- 10.0,
- LengthUnit::Inch,
- LengthDir::Both
- )))
+ Ok(LengthBoth(Length::new(10.0, LengthUnit::Inch,)))
);
assert_eq!(
LengthBoth::parse_str("60pc", ()),
- Ok(LengthBoth(Length::new(
- 10.0,
- LengthUnit::Inch,
- LengthDir::Both
- )))
+ Ok(LengthBoth(Length::new(10.0, LengthUnit::Inch,)))
);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]