[librsvg: 22/30] aspect_ratio: derive default
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 22/30] aspect_ratio: derive default
- Date: Mon, 28 Dec 2020 20:06:30 +0000 (UTC)
commit 34c48eaad2a1425d0fed88c5278f04b898c5ce9e
Author: Paolo Borelli <pborelli gnome org>
Date: Sat Dec 26 15:03:22 2020 +0100
aspect_ratio: derive default
Use enum_default so that we can derive the Default impl. Also
reorder code.
src/aspect_ratio.rs | 62 ++++++++++++++++++++++-------------------------------
1 file changed, 26 insertions(+), 36 deletions(-)
---
diff --git a/src/aspect_ratio.rs b/src/aspect_ratio.rs
index 21c39ba1..b5f5be68 100644
--- a/src/aspect_ratio.rs
+++ b/src/aspect_ratio.rs
@@ -24,21 +24,6 @@ use crate::rect::Rect;
use crate::transform::Transform;
use crate::viewbox::ViewBox;
-#[derive(Debug, Copy, Clone, PartialEq, Eq)]
-pub struct AspectRatio {
- defer: bool,
- align: Option<Align>,
-}
-
-impl Default for AspectRatio {
- fn default() -> AspectRatio {
- AspectRatio {
- defer: false,
- align: Some(Align::default()),
- }
- }
-}
-
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
enum FitMode {
Meet,
@@ -47,23 +32,6 @@ enum FitMode {
enum_default!(FitMode, FitMode::Meet);
-#[derive(Debug, Copy, Clone, PartialEq, Eq)]
-struct Align {
- x: X,
- y: Y,
- fit: FitMode,
-}
-
-impl Default for Align {
- fn default() -> Align {
- Align {
- x: X(Align1D::Mid),
- y: Y(Align1D::Mid),
- fit: FitMode::default(),
- }
- }
-}
-
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
enum Align1D {
Min,
@@ -71,9 +39,11 @@ enum Align1D {
Max,
}
-#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+enum_default!(Align1D, Align1D::Mid);
+
+#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
struct X(Align1D);
-#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
struct Y(Align1D);
impl Deref for X {
@@ -102,6 +72,28 @@ impl Align1D {
}
}
+#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
+struct Align {
+ x: X,
+ y: Y,
+ fit: FitMode,
+}
+
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct AspectRatio {
+ defer: bool,
+ align: Option<Align>,
+}
+
+impl Default for AspectRatio {
+ fn default() -> AspectRatio {
+ AspectRatio {
+ defer: false,
+ align: Some(Align::default()),
+ }
+ }
+}
+
impl AspectRatio {
pub fn is_slice(&self) -> bool {
matches!(
@@ -229,9 +221,7 @@ impl Parse for AspectRatio {
.is_ok();
let align_xy = parser.try_parse(|p| parse_align_xy(p))?;
-
let fit = parser.try_parse(|p| parse_fit_mode(p)).unwrap_or_default();
-
let align = align_xy.map(|(x, y)| Align { x, y, fit });
Ok(AspectRatio { defer, align })
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]