4个版本
使用旧的Rust 2015
0.1.3 | 2018年8月14日 |
---|---|
0.1.2 | 2018年3月6日 |
0.1.1 | 2018年3月5日 |
0.1.0 | 2018年3月5日 |
#1153 in 异步
用于 noob
10KB
125 行
try_future
这个crate旨在提供从基于futures的函数中提前返回的便捷简写。
它支持的通用模式是,在函数执行异步任务之前,它执行一些可能导致早期终止的工作,例如
- 某些解析或验证逻辑可能失败,此时函数应立即返回错误
- 某些本地缓存查找或其他优化可能使异步任务变得不必要,此时函数应立即返回一个值
示例
使用 impl Future<_>
#[macro_use] extern crate try_future;
fn make_request<C: Connect>(target: &str, client: &Client<C>) ->
impl Future<Item=Response, Error=Error>
{
let uri = try_future!(target.parse::<Uri>());
client.get(uri).into()
}
使用 Box<Future<_>>
#[macro_use] extern crate try_future;
fn make_request<C: Connect>(target: &str, client: &Client<C>) ->
Box<Future<Item=Response, Error=Error>>
{
let uri = try_future_box!(target.parse::<Uri>());
Box::new(client.get(uri))
}
依赖项
~53KB