tapir

Crates.iotapir
lib.rstapir
version1.0.1
sourcesrc
created_at2019-12-20 13:37:40.892735
updated_at2020-05-14 16:10:35.6462
descriptionAdding tapping functionality to rust
homepage
repositoryhttps://github.com/lcnr/tapir
max_upload_size
id190916
size5,579
lcnr (lcnr)

documentation

README

Tapir

A simple rust library adding tapping functionality to all types.

The tap operation takes full ownership of a variable, calls the given function with a mutable reference to the given variable and then returns full ownership of it. This allows for easy mutation without having to declare the variable as mutable.

This library is partially inspired by tap-rs.

Examples

fn get_unsorted_values() -> Vec<u32> {
    vec![42, 7, 1337, 69]
}

fn use_sorted_values(values: &[u32]) {
    assert_eq!(&[7, 42, 69, 1337], values);
}

// without tap one often needs mutable variables
let mut old = get_unsorted_values();
old.sort();
use_sorted_values(&old);

// using tap, this can be simplified
use tapir::Tap;

let tapped = get_unsorted_values().tap(|v| v.sort());
use_sorted_values(&tapped);
Commit count: 3

cargo fmt