pub fn compose_throwing<A, B, C, E, F, G>(
f: F,
g: G,
) -> impl Fn(A) -> Result<C, E>Expand description
Backward composition of two throwing functions.
§Arguments
f- A function that takes a value inBand returns aResult<C, E>g- A function that takes a value inAand returns aResult<B, E>
§Returns
A new function that takes a value in A and returns a Result<C, E>
§Example
use overture_core::compose::compose_throwing;
let parse_int = |s: &str| s.parse::<i32>().map_err(|_| "Parse error");
let add_one = |x: i32| Ok(x + 1);
let composed = compose_throwing(add_one, parse_int);
assert_eq!(composed("5"), Ok(6));
assert_eq!(composed("invalid"), Err("Parse error"));