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.
Ref: #771
I believe this PR closes #857.
Motivation
To stabilize our API, we need to get rid of pre-1.0 crates. One of them is num_enum.
This crate allows us to automatically generate conversions from primitive types to enum values - however, its usages needs to be removed from the library.
Changes
To get rid of the dependency, we needed to implement converters ourselves.
This is why, we introduce a
TryFromPrimitiveError
struct which holds the information about the enum name and the actual value that we tried to parse.Apart from that, we implement
TryFrom
for the types that used thenum_enum
crate:impl TryFrom<u16> for Consistency
impl TryFrom<i16> for SerialConsistency
impl TryFrom<u8> for RequestOpcode
impl TryFrom<u8> for ResponseOpcode
Pre-review checklist
./docs/source/
.Fixes:
annotations to PR description.