2个不稳定版本

使用旧的Rust 2015

0.2.0 2016年8月26日
0.1.0 2016年8月24日

#5 in #unwrapping

MIT许可证

4KB
51

try_or 构建状态

包含宏 try_or!try_or_else!try_opt_or!try_opt_or_else!。这些是用于解包 ResultOption 的辅助宏,当返回早期为 ErrNone 值时。其语义类似于 unwrap_orunwrap_or_else

如果您想要一个 try_opt! 宏,已经有另一个crate(try_opt)提供。

文档

用法

添加到您的Cargo.toml中

[dependencies]
try_or = "0.1"

使用宏如下所示

#[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);
}

无运行时依赖项