8000 GitHub - DenisGorbachev/option-like: Create your own Option-like enum
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

DenisGorbachev/option-like

Repository files navigation

Create your own Option-like enum

Build Documentation

Create your own enum type that behaves like Rust’s Option but with custom names.

Example

use option_like::option_like;

option_like!(
    #[derive(Debug, PartialEq)]
    pub enum Cached<T> {
        Hit(T),
        Miss,
    }

    is_some => is_hit
    is_none => is_miss
);

// Create instances
let c1 = Cached::<u32>::Hit(42);
let c2 = Cached::<u32>::Miss;

// Boolean tests
assert!(c1.is_hit());
assert!(c2.is_miss());

// Convert to Option
assert_eq!(Option::<u32>::from(c1), Some(42));
assert_eq!(Option::<u32>::from(c2), None);

// Convert from Option
assert_eq!(Cached::<u32>::from(Some(42)), Cached::Hit(42));
assert_eq!(Cached::<u32>::from(None), Cached::Miss);

Installation

cargo add option-like

Gratitude

Like the project? ⭐ Star this repo on GitHub!

License

Apache-2.0 or MIT.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, shall be licensed as above, without any additional terms or conditions.

About

Create your own Option-like enum

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  
0