From 5bff83ecbdd27cf9fc627bdec453629bceca1b9d Mon Sep 17 00:00:00 2001 From: Mikolaj Wielgus Date: Sat, 9 Aug 2025 22:55:45 +0200 Subject: [PATCH] refactor: Add method to join iterable of edits into one edit --- src/geometry/edit.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/geometry/edit.rs b/src/geometry/edit.rs index d43a016..7197ebe 100644 --- a/src/geometry/edit.rs +++ b/src/geometry/edit.rs @@ -8,7 +8,7 @@ use crate::graph::{GenericIndex, GetPetgraphIndex}; use super::{AccessBendWeight, AccessDotWeight, AccessSegWeight, GetLayer}; -pub trait Edit: Sized { +pub trait Edit: Sized + Default { fn reverse(&self) -> Self where Self: Clone, @@ -21,6 +21,16 @@ pub trait Edit: Sized { fn reverse_inplace(&mut self); fn merge(&mut self, edit: Self); + + fn merge_iter(iter: impl IntoIterator) -> Self { + let mut result_edit = Self::default(); + + for curr_edit in iter { + result_edit.merge(curr_edit); + } + + result_edit + } } pub trait ApplyGeometryEdit<