2个不稳定版本
0.1.0 | 2020年8月8日 |
---|---|
0.0.0 | 2020年8月8日 |
#1769 in 异步
7KB
future-result
一个Rust crate,提供将Result
映射到Future
的Result
的惯用方式。
示例用法
use future_result::FutureResult;
async fn add_1(x: u32) -> u32 {
x + 1
}
fn main() {
let fut = async {
let ok: Result<u32, ()> = Ok(41);
let ok = ok.then_map(add_1).await;
assert_eq!(Ok(42), ok);
// ...
let err: Result<(), u32> = Err(9);
let err = err.then_map_err(add_1).await;
assert_eq!(Err(10), err);
};
futures::executor::block_on(fut);
}
lib.rs
:
示例用法
use future_result::FutureResult;
async fn add_1(x: u32) -> u32 {
x + 1
}
fn main() {
let fut = async {
let ok: Result<u32, ()> = Ok(41);
let ok = ok.then_map(add_1).await;
assert_eq!(Ok(42), ok);
// ...
let err: Result<(), u32> = Err(9);
let err = err.then_map_err(add_1).await;
assert_eq!(Err(10), err);
};
futures::executor::block_on(fut);
}
依赖关系
~300–760KB
~18K SLoC