Skip to main content

Module fp

Module fp 

Source
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;

Modules§

compose