aboutsummaryrefslogtreecommitdiff
path: root/libgitmail/src/set.rs
diff options
context:
space:
mode:
Diffstat (limited to 'libgitmail/src/set.rs')
-rw-r--r--libgitmail/src/set.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/libgitmail/src/set.rs b/libgitmail/src/set.rs
new file mode 100644
index 0000000..2c71743
--- /dev/null
+++ b/libgitmail/src/set.rs
@@ -0,0 +1,18 @@
+//! Various functions to work with assembled patch sets
+
+use crate::Patch;
+
+/// A set of patches that can be applied to a repo
+pub struct PatchSet<'maildir> {
+ list: Vec<Patch<'maildir>>,
+}
+
+impl<'maildir> PatchSet<'maildir> {
+ /// Consumes a PatchSet with a builder on each patch in the series
+ pub fn exec<F>(self, cb: F)
+ where
+ F: Fn(Patch<'maildir>),
+ {
+ self.list.into_iter().for_each(|p| cb(p));
+ }
+}