Function ioc::or_err [] [src]

pub fn or_err<'a, Key, X, E>(
    key: &'a Key,
    res: Result<X, E>
) -> Result<X, Error<'a, Key>> where
    Key: Key,
    Error<'a, Key>: From<(&'a Key, E)>, 

Utility for converting Result<X, [Poison|TryLock]Error> to Result<X, ioc::Error>.

Example usage:

fn foo<'a>(bar: &'a RwLock<Svc>) -> Result<Foo, ioc::Error<'a, Key>> {
    // doesn't work due to ioc::Error requiring the service key
    let foo = try!{lock.read()}.do_something();

    // works
    let foo = try!{ioc::or_err(Svc::key(), lock.read())}.do_something();
     
    Ok(foo)
}