try_or 0.2.0

Contains helper macros for unwrapping Results and Options.
Documentation
  • Coverage
  • 100%
    5 out of 5 items documented0 out of 0 items with examples
  • Size
  • Source code size: 5.67 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 599.02 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • Documentation
  • Mixthos/try_or
    1 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • Mixthos

try_or Build Status

Contains the macros try_or!, try_or_else!, try_opt_or! and try_opt_or_else!. These are helper macros for unwrapping a Result or an Option while returning early for Err and None values. The semantics are similar to unwrap_or and unwrap_or_else.

If you want a try_opt! macro, there's already another crate (try_opt) for that.

Documentation

Usage

Add to your Cargo.toml:

[dependencies]

try_or = "0.1"

Use the macros like this:

#[macro_use]
extern crate try_or;

fn main() {
	// test try_or!
	assert_eq!({ || try_or!("5".parse::<u32>(), 1) } (), 5);
	assert_eq!({ || try_or!("a".parse::<u32>(), 1) } (), 1);
	
	// test try_or_else!
	assert_eq!({ || try_or_else!("1".parse::<u32>(), |_| 5) } (), 1);
	assert_eq!({ || try_or_else!("a".parse::<u32>(), |_| 5) } (), 5);
	
	// test try_opt_or!
	assert_eq!({ || try_opt_or!(Some(1), 2) } (), 1);
	assert_eq!({ || try_opt_or!(None, 2) } (), 2);
	
	// test try_or_else!
	assert_eq!({ || try_opt_or_else!(Some(1), || 2) } (), 1);
	assert_eq!({ || try_opt_or_else!(None, || 2) } (), 2);
}