From: Ian Jackson Date: Sun, 8 May 2022 10:01:31 +0000 (+0100) Subject: geometry: Properly publish pos_zip_try_map etc., and use a bit more X-Git-Tag: otter-1.1.0~260 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=83097ec90b4ac192765bb04bd170db42851c2663;p=otter.git geometry: Properly publish pos_zip_try_map etc., and use a bit more Signed-off-by: Ian Jackson --- diff --git a/base/geometry.rs b/base/geometry.rs index e32362dd..2733632e 100644 --- a/base/geometry.rs +++ b/base/geometry.rs @@ -99,6 +99,7 @@ impl PosPromote for PosC where T: Into + Copy + Debug { pub struct PosCFromIteratorError; display_as_debug!{PosCFromIteratorError} +#[macro_export] macro_rules! pos_zip_try_map { { $( $input:expr ),* => $closure:expr } => { @@ -107,6 +108,7 @@ macro_rules! pos_zip_try_map { { .map($closure) ) } } +#[macro_export] macro_rules! pos_zip_map { { $( $input:expr ),* => $closure:expr } => { @@ -123,7 +125,7 @@ impl PosC { PosC::both(::zero()) } - fn coords(self) -> impl ExactSizeIterator + FusedIterator { + pub fn coords(self) -> impl ExactSizeIterator + FusedIterator { self.coords.into_iter() } diff --git a/base/prelude.rs b/base/prelude.rs index d482250a..5355dfda 100644 --- a/base/prelude.rs +++ b/base/prelude.rs @@ -29,6 +29,7 @@ pub use void::{self, Void}; pub use crate::html::*; +pub use crate::{pos_zip_map, pos_zip_try_map}; pub use crate::geometry::{CoordinateOverflow, PosC, PosPromote}; pub use crate::{dbgc, hformat, hformat_as_display, hwrite}; pub use crate::misc::default; diff --git a/src/organise.rs b/src/organise.rs index 1f7642cb..746145a6 100644 --- a/src/organise.rs +++ b/src/organise.rs @@ -87,11 +87,8 @@ impl Attempt { A::AbutCompr => (- bbox.tl().map(|v| v/ 3 ))?, A::Hanging => return atleast, }; - PosC::from_iter_2( - izip!(atleast.coords.iter(), want.coords.iter()).map( - |(v, atleast)| Ord::max(*v,*atleast) - ) - ) + pos_zip_map!( atleast, want + => |(v, atleast)| Ord::max(v,atleast) ) } } diff --git a/src/prelude.rs b/src/prelude.rs index eeec8a9a..a8c1610a 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -125,6 +125,7 @@ use nix::time::ClockId; pub const CLOCK_REALTIME : ClockId = ClockId::CLOCK_REALTIME ; pub const CLOCK_MONOTONIC: ClockId = ClockId::CLOCK_MONOTONIC; +pub use otter_base::{pos_zip_map, pos_zip_try_map}; pub use otter_base::geometry::{self,Coord,Pos,PosC,Rect,RectC}; pub use otter_base::geometry::{CoordinateOverflow,Region}; pub use otter_base::zcoord::{self, ZCoord};