Zero-cost error handling for generic traits.
Assume you want to build a crate that defines a generic trait,
meant to be implemented by others.
Some implementations of that trait will always succeed,
others may sometimes fail.
The methods of the generic trait should therefore return
but that should not induce an overhead for infallible implementations
(per the zero-cost abstraction motto).
coercible_errors! macro will define a set of traits and types
that you can use to define your generic traits,
in order to keep their error-handling as efficient as possible.
More precisely, the compiler will be able to optimize away the error types
whenever only infallible implementations of the generic trait are used.
README.md for a more detailed explaination.
This module contains the traits and types defined by
Sets up coercible_errors for a previously defined error type.
An "error" type that can never happen.
Type alias for a result that will Never fail.