Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Variant Types are ZSTs created for error kinds. They are useful when a function has only a single error condition. In such cases returning a full-fledged Error may be excessive because that forces a caller to handle a non-exhaustive list of errors. With Variant Types the return code is exhaustive, making error handling simpler.
Note that Variant Types are marked
#[non_exhaustive]
to forbid their creation outside their origin crate. This doesn't affect a function that returns such type. A caller of such function still needs to handle only a single error.Variant Types may be enhanced in future to contain custom fields. This will allow returning rich information about errors.
Variant Types are implicitly convertible to Kind and Error so propagating them through layers of abstraction is seamless as tighterror aims to be.