Expand description
Functional programming utilities.
This module provides composition helpers, lazy evaluation, and memoization, inspired by Laravel’s pipeline and AdonisJS middleware patterns.
§Example
use rok_utils::fp::{pipe, compose, tap};
// Pipe - thread value through functions
let result = pipe(5, vec![|x| x + 1, |x| x * 2]);
assert_eq!(result, 12); // (5 + 1) * 2
// Compose - create new functions
let add_then_double = compose(|x: i32| x * 2, |x: i32| x + 1);
assert_eq!(add_then_double(5), 12);
// Tap - side effects without changing value
let mut log = Vec::new();
let result = tap(42, |v| log.push(*v));
assert_eq!(result, 42);Re-exports§
pub use compose::shuffle;pub use compose::apply;pub use compose::compose;pub use compose::memoize;pub use compose::or_default;pub use compose::pipe;pub use compose::retry;pub use compose::tap;pub use compose::Lazy;