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) }