4 releases
Uses old Rust 2015
0.1.3 | Aug 14, 2018 |
---|---|
0.1.2 | Mar 6, 2018 |
0.1.1 | Mar 5, 2018 |
0.1.0 | Mar 5, 2018 |
#1276 in Asynchronous
Used in noob
10KB
125 lines
try_future
This crate aims to provide a convenient short-hand for returning early
from futures
-based functions.
The general pattern it supports is where before a function performs an asynchronous task, it does some work that might result in an early termination, for example:
- certain parsing or validation logic might fail, upon which the function should return immediately with an error
- some local cache lookup or other optimization that might render the asynchronous task unnecessary, and where the function would want immediately return a value instead
Examples
Using 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()
}
Using 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))
}
Dependencies
~54KB