aboutsummaryrefslogtreecommitdiff
path: root/mingling/src/parser/picker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mingling/src/parser/picker.rs')
-rw-r--r--mingling/src/parser/picker.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/mingling/src/parser/picker.rs b/mingling/src/parser/picker.rs
index 9258002..d69e27a 100644
--- a/mingling/src/parser/picker.rs
+++ b/mingling/src/parser/picker.rs
@@ -108,6 +108,16 @@ impl<R> Picker<R> {
None => None,
}
}
+
+ /// Applies an operation to the parsed arguments and returns the modified `Picker`.
+ ///
+ /// Takes a closure that receives the current `Argument` and returns a new `Argument`.
+ /// The returned `Argument` replaces the original arguments in the builder.
+ /// This method can be used to modify or transform the parsed arguments before extracting values.
+ pub fn operate_args<F: FnOnce(Argument) -> Argument>(mut self, operation: F) -> Self {
+ self.args = operation(self.args);
+ self
+ }
}
impl<T: Into<Argument>, G> From<T> for Picker<G> {
@@ -189,6 +199,16 @@ macro_rules! define_pick_structs {
self.$final_val = edit(self.$final_val);
self
}
+
+ /// Applies an operation to the parsed arguments and returns the modified `Picker`.
+ ///
+ /// Takes a closure that receives the current `Argument` and returns a new `Argument`.
+ /// The returned `Argument` replaces the original arguments in the builder.
+ /// This method can be used to modify or transform the parsed arguments before extracting values.
+ pub fn operate_args<F: FnOnce(Argument) -> Argument>(mut self, operation: F) -> Self {
+ self.args = operation(self.args);
+ self
+ }
}
};
}