pipe

Function pipe 

Source
pub fn pipe<T, F, R>(value: T, f: F) -> R
where F: FnOnce(T) -> R,
Expand description

Function composition for keypath operations

ยงExamples

use rust_prelude_plus::prelude::*;
use key_paths_derive::Keypath;
use std::rc::Rc;
 
#[derive(Keypath, Debug, Clone)]
struct Person {
    name: String,
    age: u32,
}
 
let people = vec![
    Rc::new(Person { name: "Alice".to_string(), age: 30 }),
    Rc::new(Person { name: "Bob".to_string(), age: 25 }),
];
 
// Compose multiple operations
let result: Vec<String> = pipe(people, |people| {
    people.iter()
        .filter_by_keypath(Person::age(), |&age| age < 30)
        .map_keypath(Person::name(), |name| name.clone())
        .collect()
});
 
assert_eq!(result, vec!["Bob"]);