pub fn pipe<T, F, R>(value: T, f: F) -> Rwhere
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"]);