I've encountered a minor inconvenience with Failure. Say that I have some function
fn foo(&self) -> Result<(), Error> { ... }
that is called from some other function
fn bar(&self) -> Result<(), Error> { foo() }
If I add a context in the most obvious way,
fn bar(&self) -> Result<(), Error> { foo().context("bar") }
it won't compile because I'm returning failure::Context instead of failure::Error. The fix is obvious
fn bar(&self) -> Result<(), Error> { Ok(foo().context("bar")?) }
but slightly annoying. (Well, the most annoying part is that I can never remember to add the Ok(...) until the compiler tells me I have to, but I'd rather put the blame somewhere else.)