macro_rules! anyerr {
($fmt:literal$(, $($arg:expr),* $(,)?)?) => { ... };
($err:expr, $fmt:literal$(, $($arg:expr),* $(,)?)?) => { ... };
($err:expr) => { ... };
}Expand description
Converts a value into [AnyError].
anyerr!("msg")creates an error with just a message.anyerr!("this failed at {a} with {}", b)creates an error with a formatted messageanyerr!(value)converts anyimpl StackError,impl std::error::Error, orimpl Displayinto [AnyError].anyerr!(value, "context string") works as above, but adds "context string" as [context`](Anyerr::context).- `anyerr!(value, “context {}”, foo) works as above, but with a formatted string as context
The forms that take value use autoref specialization to keep the most details possible:
if given a [StackError] it uses [AnyError::from_stack], if given a std error, uses [AnyError::from_std],
if given a value that impls Display it uses [AnyError::from_display] - in this order.