option-ext

moved to htps://codeberg/soc/option-ext

Latest version: 0.2.0 registry icon
Maintenance score
0
Safety score
0
Popularity score
71
Check your open source dependency risks. Get immediate insight about security, stability and licensing risks.
Security
  Vulnerabilities
Version Suggest Low Medium High Critical
0.2.0 0 0 0 0 0
0.1.0 0 0 0 0 0

Stability
Latest release:

0.2.0 - This version may not be safe as it has not been updated for a long time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform

Licensing

Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.

MPL-2.0   -   Mozilla Public License 2.0

Not a wildcard

Not proprietary

OSI Compliant



crates.io API documentation actively developed License: MPL-2.0

option-ext

Introduction

This crate extends Option with additional methods, currently:

  • contains
  • map_or2 (as a replacement for map_or)
  • map_or_else2 (as a replacement for map_or_else)

Its sister crate is result-ext, which extends Result.

Requirements

Rust 1.0 or newer.

Usage

Dependency

Add the library as a dependency to your project by inserting

option-ext = "0.2.0"

into the [dependencies] section of your Cargo.toml file.

Example

use option_ext::OptionExt;

fn example_contains() {
    let x: Option<u32> = Some(2);
    assert_eq!(x.contains(&2), true);

    let x: Option<u32> = Some(3);
    assert_eq!(x.contains(&2), false);

    let x: Option<u32> = None;
    assert_eq!(x.contains(&2), false);
}

fn example_map_or2() {
    let x = Some("bar");
    assert_eq!(x.map_or2(|v| v.len(), 42), 3);

    let x: Option<&str> = None;
    assert_eq!(x.map_or2(|v| v.len(), 42), 42);
}

fn example_map_or_else2() {
    let k = 23;
    
    let x = Some("bar");
    assert_eq!(x.map_or_else2(|v| v.len(), || 2 * k), 3);
    
    let x: Option<&str> = None;
    assert_eq!(x.map_or_else2(|v| v.len(), || 2 * k), 46);
}