Refactor ParseError#1089
Open
nepalez wants to merge 1 commit into
Open
Conversation
4a990c5 to
ec2546c
Compare
caspervonb
reviewed
Aug 14, 2023
| } | ||
|
|
||
| #[derive(Debug, Clone)] | ||
| pub struct ParseHeaderValueError; |
Collaborator
There was a problem hiding this comment.
These are intended to be discrete simple errors for FromStr, they live outside of the "io-esque" methods on context and client.
This complicates what is a very simple and straight forward discrete error type imo.
Remember, users are the ones calling "".parse() directly for the most part.
ec2546c to
ba6866d
Compare
Instead of the `crate::Error`, the <private> method `stream::parse_headers` will return the specialized error with kind enumerating the possible causes of parsing errors. This change will help to specialize errors error returned by public methods. Along this change, I also refactored 2 errors, namely the `ParseHeaderNameError` and the `ParseHeaderValueError` to convert them to specialization of generic `crate::error::Error<_>`. These changes are collected in the same commit because all of them describe errors occurred during either building or parsing headers.
ba6866d to
d46d8d4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR is a part of error specialization initiated by the #1047
See the initial discussion of the change in this #1081 (to be removed later, after processing the feedback by @Jarema and creating smaller PR-s from its commits).
This particular PR is created to follow-up the discussion
In this PR instead of the
crate::Error, the methodstream::parse_headerswill return the specialized error with kind enumerating the possible causes of parsing errors. This change will help to specialize errors error returned by public methods.Along this change, I also refactored 2 errors, namely the
ParseHeaderNameErrorand theParseHeaderValueErrorto convert them to specialization of genericcrate::error::Error<_>.These changes are collected in the same commit because all of them describe errors occurred during either building or parsing headers.