From 4c37ebb936ae49278a5f299c815a37b2ae32cdc3 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sat, 12 Jun 2021 18:24:31 +0200 Subject: [PATCH] Give up on not implementing Eq and Ord --- src/geom/angle.rs | 2 +- src/geom/fr.rs | 2 +- src/geom/linear.rs | 2 +- src/geom/path.rs | 4 ++-- src/geom/point.rs | 2 +- src/geom/relative.rs | 2 +- src/geom/size.rs | 2 +- src/layout/stack.rs | 1 + tests/typeset.rs | 7 +------ 9 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/geom/angle.rs b/src/geom/angle.rs index bf8bcc660..1b724dcd4 100644 --- a/src/geom/angle.rs +++ b/src/geom/angle.rs @@ -2,7 +2,7 @@ use super::*; use decorum::N64; /// An angle. -#[derive(Default, Copy, Clone, PartialEq, PartialOrd, Hash)] +#[derive(Default, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] pub struct Angle { /// The angle in raw units. raw: N64, diff --git a/src/geom/fr.rs b/src/geom/fr.rs index 974d675ee..1768366a1 100644 --- a/src/geom/fr.rs +++ b/src/geom/fr.rs @@ -3,7 +3,7 @@ use decorum::N64; use super::*; /// A fractional length. -#[derive(Default, Copy, Clone, PartialEq, PartialOrd, Hash)] +#[derive(Default, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] pub struct Fractional(N64); impl Fractional { diff --git a/src/geom/linear.rs b/src/geom/linear.rs index 204738219..c3216b212 100644 --- a/src/geom/linear.rs +++ b/src/geom/linear.rs @@ -1,7 +1,7 @@ use super::*; /// A combined relative and absolute length. -#[derive(Default, Copy, Clone, PartialEq, Hash)] +#[derive(Default, Copy, Clone, Eq, PartialEq, Hash)] pub struct Linear { /// The relative part. pub rel: Relative, diff --git a/src/geom/path.rs b/src/geom/path.rs index f6be27549..a7aed249e 100644 --- a/src/geom/path.rs +++ b/src/geom/path.rs @@ -3,12 +3,12 @@ use super::*; use serde::{Deserialize, Serialize}; /// A bezier path. -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, Eq, PartialEq, Serialize, Deserialize)] #[serde(transparent)] pub struct Path(pub Vec); /// An element in a bezier path. -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize)] pub enum PathElement { MoveTo(Point), LineTo(Point), diff --git a/src/geom/point.rs b/src/geom/point.rs index 129205f15..13bced785 100644 --- a/src/geom/point.rs +++ b/src/geom/point.rs @@ -3,7 +3,7 @@ use super::*; use serde::{Deserialize, Serialize}; /// A point in 2D. -#[derive(Default, Copy, Clone, PartialEq, Serialize, Deserialize, Hash)] +#[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Serialize, Deserialize)] pub struct Point { /// The x coordinate. pub x: Length, diff --git a/src/geom/relative.rs b/src/geom/relative.rs index 9f8aea550..6505abff2 100644 --- a/src/geom/relative.rs +++ b/src/geom/relative.rs @@ -6,7 +6,7 @@ use super::*; /// /// _Note_: `50%` is represented as `0.5` here, but stored as `50.0` in the /// corresponding [literal](crate::syntax::Expr::Percent). -#[derive(Default, Copy, Clone, PartialEq, PartialOrd, Hash)] +#[derive(Default, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] pub struct Relative(N64); impl Relative { diff --git a/src/geom/size.rs b/src/geom/size.rs index ea5220914..1c411fb30 100644 --- a/src/geom/size.rs +++ b/src/geom/size.rs @@ -3,7 +3,7 @@ use super::*; use serde::{Deserialize, Serialize}; /// A size in 2D. -#[derive(Default, Copy, Clone, PartialEq, Serialize, Deserialize, Hash)] +#[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Serialize, Deserialize)] pub struct Size { /// The width. pub width: Length, diff --git a/src/layout/stack.rs b/src/layout/stack.rs index 7049f60cc..29b00a985 100644 --- a/src/layout/stack.rs +++ b/src/layout/stack.rs @@ -39,6 +39,7 @@ impl From for AnyNode { } } +#[derive(Debug)] struct StackLayouter<'a> { /// The directions of the stack. stack: &'a StackNode, diff --git a/tests/typeset.rs b/tests/typeset.rs index 90fc60054..420df09c7 100644 --- a/tests/typeset.rs +++ b/tests/typeset.rs @@ -350,12 +350,7 @@ fn draw(cache: &Cache, frames: &[Frame], dpi: f32) -> Pixmap { let pad = Length::pt(5.0); let height = pad + frames.iter().map(|l| l.size.height + pad).sum::(); - let width = 2.0 * pad - + frames - .iter() - .map(|l| l.size.width) - .max_by(|a, b| a.partial_cmp(&b).unwrap()) - .unwrap_or_default(); + let width = 2.0 * pad + frames.iter().map(|l| l.size.width).max().unwrap_or_default(); let pixel_width = (dpi * width.to_pt() as f32) as u32; let pixel_height = (dpi * height.to_pt() as f32) as u32;