pub struct BoxConditionalTransformerOnce<T, R> { /* private fields */ }Expand description
BoxConditionalTransformerOnce struct
A conditional consuming transformer that only executes when a predicate is
satisfied. Uses BoxTransformerOnce and BoxPredicate for single
ownership semantics.
This type is typically created by calling BoxTransformerOnce::when() and
is designed to work with the or_else() method to create if-then-else
logic.
§Features
- Single Ownership: Not cloneable, consumes
selfon use - One-time Use: Can only be called once
- Conditional Execution: Only transforms when predicate returns
true - Chainable: Can add
or_elsebranch to create if-then-else logic
§Examples
§With or_else Branch
use prism3_function::{TransformerOnce, BoxTransformerOnce};
let double = BoxTransformerOnce::new(|x: i32| x * 2);
let negate = BoxTransformerOnce::new(|x: i32| -x);
let conditional = double.when(|x: &i32| *x > 0).or_else(negate);
assert_eq!(conditional.apply(5), 10); // when branch executed
let double2 = BoxTransformerOnce::new(|x: i32| x * 2);
let negate2 = BoxTransformerOnce::new(|x: i32| -x);
let conditional2 = double2.when(|x: &i32| *x > 0).or_else(negate2);
assert_eq!(conditional2.apply(-5), 5); // or_else branch executed§Author
Haixing Hu
Implementations§
Source§impl<T, R> BoxConditionalTransformerOnce<T, R>where
T: 'static,
R: 'static,
impl<T, R> BoxConditionalTransformerOnce<T, R>where
T: 'static,
R: 'static,
Sourcepub fn or_else<F>(self, else_transformer: F) -> BoxTransformerOnce<T, R>where
F: TransformerOnce<T, R> + 'static,
pub fn or_else<F>(self, else_transformer: F) -> BoxTransformerOnce<T, R>where
F: TransformerOnce<T, R> + 'static,
Trait Implementations§
Source§impl<T, R> Debug for BoxConditionalTransformerOnce<T, R>
impl<T, R> Debug for BoxConditionalTransformerOnce<T, R>
Auto Trait Implementations§
impl<T, R> Freeze for BoxConditionalTransformerOnce<T, R>
impl<T, R> !RefUnwindSafe for BoxConditionalTransformerOnce<T, R>
impl<T, R> !Send for BoxConditionalTransformerOnce<T, R>
impl<T, R> !Sync for BoxConditionalTransformerOnce<T, R>
impl<T, R> Unpin for BoxConditionalTransformerOnce<T, R>
impl<T, R> !UnwindSafe for BoxConditionalTransformerOnce<T, R>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more