#filter #older #option #polyfill

no-std option-filter

Option::filter polyfill for Rust 1.26 and older

3 stable releases

Uses old Rust 2015

1.0.2 Jun 22, 2018
1.0.1 Oct 4, 2016

#1761 in Rust patterns

Download history 2/week @ 2023-12-25 1/week @ 2024-02-12 20/week @ 2024-02-19 57/week @ 2024-02-26 33/week @ 2024-03-04

111 downloads per month
Used in 3 crates

MIT/Apache

5KB

option-filter Cargo

This crate adds a .filter() method to Option<T>, for older versions of Rust that don't provide it.

Note: Option::filter was added to the standard library in Rust 1.27. Unless you need to support older versions of Rust, you do not need to use this crate.

Usage

To use it, add option-filter to your Cargo.toml:

[dependencies]
option-filter = "1.0"

Then import the extension trait:

extern crate option_filter;
use option_filter::OptionFilterExt;

Now you can filter your Options!

let answer = Some(42);
assert_eq!(answer.filter(|x| *x == 42), Some(42));
assert_eq!(answer.filter(|x| *x == 43), None);

lib.rs:

This crate adds a .filter() method to Option<T>, for older versions of Rust that don't provide it.

Note: Option::filter was added to the standard library in Rust 1.27. Unless you need to support older versions of Rust, you do not need to use this crate.

To use it, add option-filter to your Cargo.toml:

[dependencies]
option-filter = "1.0"

Then import the extension trait:

extern crate option_filter;
use option_filter::OptionFilterExt;

Now you can filter your Options!

let answer = Some(42);
assert_eq!(answer.filter(|x| *x == 42), Some(42));
assert_eq!(answer.filter(|x| *x == 43), None);

No runtime deps