feat(util): introduce ErrorBody<D, E> - #179
Open
cratelyn wants to merge 2 commits into
Open
Conversation
a common piece of boilerplate code that shows up in test coverage for body middleware is an "error body". at the time of writing, three such examples live in the test code for this respository. this commit introduces a reusable error body to facilitate authoring such test coverage. this body yields an error once, and then proceeds to yield `Ready(None)` when polled afterwards. this body exposes a `D` generic to control the `Body::Data` frame type, to permit this to be used in situations with various `Buf` implementations. Signed-off-by: katelyn martin <git@katelyn.world>
cratelyn
marked this pull request as ready for review
September 2, 2026 17:21
because type inference can get tripped up on the `Body::Data` type, add an example showing the construction of an error body. Signed-off-by: katelyn martin <git@katelyn.world>
cratelyn
commented
Sep 2, 2026
| /// | ||
| /// This is most often useful for situations like exercising error-handling logic in tests. | ||
| #[derive(Debug)] | ||
| pub struct ErrorBody<D, E> { |
Member
Author
There was a problem hiding this comment.
🚴 bikeshed: i could see this being called Error, rather than ErrorBody. because std::error::Error is such a foundational type though, and other common types like anyhow::Error and thiserror::Error would also conflict with that, i opted to include the Body suffix.
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.
a common piece of boilerplate code that shows up in test coverage for
body middleware is an "error body". at the time of writing, three such
examples live in the test code for this respository. this commit
introduces a reusable error body to facilitate authoring such test
coverage.
this body yields an error once, and then proceeds to yield
Ready(None)when polled afterwards.
this body exposes a
Dgeneric to control theBody::Dataframe type,to permit this to be used in situations with various
Bufimplementations.