auto-context
Auto-add context to anyhow errors (without nightly).
Example
use ;
fails with
Error: Test::some_function(..) @ auto-context/src/lib.rs::23
Caused by:
0: .some_method() @ auto-context/src/lib.rs::15
1: some error
Details
The auto_context proc macro can be used to annotate any item. This includes functions, methods, and struct/trait impls.
Context is added to every [try expression] (every use of a ?
). Different
kinds of expressions result in different context formats:
- method calls:
.method_name(args)
- function calls:
some::func(args)
- identifiers:
xyz
- expression calls:
(.. some expr ..)
where args
is ..
if arguments are present and is empty otherwise.