//! Definition of the `Result` (immediately finished) combinator
use PhantomData;
use ;
use ActorFuture;
use Actor;
/// A future representing a value that is immediately ready.
///
/// Created by the `result` function.
// TODO: rename this to `Result` on the next major version
/// Creates a new "leaf future" which will resolve with the given result.
///
/// The returned future represents a computation which is finshed immediately.
/// This can be useful with the `finished` and `failed` base future types to
/// convert an immediate value to a future to interoperate elsewhere.
///
/// # Examples
///
/// ```
/// use actix::{fut, Actor, Context};
///
/// struct MyActor;
/// impl Actor for MyActor {
/// type Context = Context<Self>;
/// }
///
/// let future_of_1 = fut::result::<u32, u32, MyActor>(Ok(1));
/// let future_of_err_2 = fut::result::<u32, u32, MyActor>(Err(2));
/// ```
/// Creates a "leaf future" from an immediate value of a finished and
/// successful computation.
///
/// The returned future is similar to `result` where it will immediately run a
/// scheduled callback with the provided value.
///
/// # Examples
///
/// ```
/// use actix::{Actor, Context};
/// use actix::fut::*;
///
/// struct MyActor;
/// impl Actor for MyActor {
/// type Context = Context<Self>;
/// }
///
/// let future_of_1 = ok::<u32, u32, MyActor>(1);
/// ```
/// Creates a "leaf future" from an immediate value of a failed computation.
///
/// The returned future is similar to `result` where it will immediately run a
/// scheduled callback with the provided value.
///
/// # Examples
///
/// ```
/// use actix::{fut, Actor, Context};
///
/// struct MyActor;
/// impl Actor for MyActor {
/// type Context = Context<Self>;
/// }
///
/// let future_of_err_1 = fut::err::<u32, u32, MyActor>(1);
/// ```