3 个不稳定版本
使用旧的 Rust 2015
0.2.1 | 2018 年 7 月 4 日 |
---|---|
0.2.0 | 2018 年 7 月 4 日 |
0.1.0 | 2018 年 5 月 29 日 |
#2219 在 Rust 模式
23KB
197 行
fn_block
包
定义在闭包中调用块或表达式的宏的库。
快速介绍
这个库主要是为了允许使用 ?.
操作符组合进行“安全导航”,(看似)而无需跳出当前函数。这允许类似在其他语言(如 Swift、C# 或 Kotlin)中操作符的使用。
要使用此库,您必须将其添加到您的 Cargo.toml
文件的依赖项中
[dependencies]
fn_block = "0.2.1"
然后,将以下行添加到您的模块中
#[macro_use]
extern crate fn_block;
use fn_block::*;
您也可以仅导入所需的符号,而不是使用通配符。
以下是如何使用此包的示例
let o = Some("Foobar");
let s = fn_expr!{ o?.get(0..3)?.to_lowercase().into_some() };
assert_eq!("foo", s.unwrap());
请访问 API 文档 以获取更多详细信息。
功能概述
简而言之,此包提供了以下 API
fn_expr
宏允许将表达式包装成可以直接调用的 lambda 函数。IntoSome
特性,为所有Sized
类型实现,允许在值上调用into_some
以将其移动到Option::Some
。IntoOk
特性,为所有Sized
类型实现,允许在值上调用into_ok
以将其移动到Result::Ok
。
有关更多示例,请查看测试模块。
不稳定功能
要使用不稳定功能,您必须在您的 Cargo.toml
中的依赖项声明中更新
[dependencies]
fn_block = { version = "0.2.1", features = ["unproven"] }
请注意,此包的不稳定功能 确实 在稳定 Rust 上工作。
以下是不稳定的 API
fn_try
宏允许将表达式包装成 lambda 函数,直接调用并在之后直接恢复错误。
许可证
fn_block 包采用以下许可证
- Apache许可证版本2.0(LICENSE-APACHE / http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT / http://opensource.org/licenses/MIT)
选择您希望使用的库。