/tool-rs

Primary LanguageRustApache License 2.0Apache-2.0

Tool

A grab-bag of useful functions for functional programming.

Example

Non-empty strings

extern crate tool;
use tool::prelude::*;
fn main() {
    let strings: Vec<_> = vec!["my string", "", "asdf", ""]
        .into_iter()
        .filter(non_empty)
        .collect();
    assert_eq!(strings, vec!["my string", "asdf"]);
}

First item in an iterator of tuples.

extern crate tool;
use tool::prelude::*;
fn main() {
    let strings: Vec<_> = vec![("first", 1), ("second", 2), ("third", 3), ("fourth", 4)]
        .into_iter()
        .map(first)
        .collect();

    assert_eq!(strings, vec!["first", "second", "third", "fourth"]);
}

Compile-Time Flags (cargo features)

  • use_std (default: enabled) - Disable this if you're project doesn't depend on libstd.