3 unstable releases

0.2.0 Apr 26, 2023
0.1.1 Apr 26, 2023
0.1.0 Apr 26, 2023

#2574 in Rust patterns

21 downloads per month

MIT license

9KB
83 lines

composing

Tools to compose functions

crates.io docs.rs GitHub GitHub Workflow Status Dependencies status MIT license

This library exports two macros, compose_expr and compose_fn, which allow to easily compose expressions and functions respectively.

They both support right-to-left and left-to-right composition.

Examples

use composing::*;

fn plus_one(x: i32) -> i32 { x + 1 }
fn times_two(x: i32) -> i32 { x * 2 }
fn to_string(x: i32) -> String { x.to_string() }

let composition = compose_fn!(to_string, plus_one, times_two);
assert_eq!(composition(17), "35");

let composition = compose_fn!(times_two => plus_one => to_string);
assert_eq!(composition(17), "35");

No runtime deps

Features