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 asynchonous 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 optimisation that might render the
asynchronous task unnecessary, and where the function would want immediately
return a value instead
Examples
Using impl Future<_>
(nightly)
```rust
[macrouse] extern crate tryfuture;
fn makerequest(target: &str, client: &Client) ->
impl Future-
{
let uri = try
future!(target.parse::());
client.get(uri).into()
}
```
Using Box<Future<_>>
```rust
[macrouse] extern crate tryfuture;
fn makerequest(target: &str, client: &Client) ->
Box>
{
let uri = tryfuture_box!(target.parse::());
Box::new(client.get(uri))
}
```