Add extensions for ResponseMessage like Kotlin's Result type #40
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.
The
ResponseMessage
type is very similar to Kotlin's built-inResult
type. The only major difference is that theResponseMessage
type has additional fields for response code, headers, and trailers.The Kotlin
Result
type has a number of convenient extension functions which can simplify many common coding situations. For example,getOrThrow
is useful for situations where a code block is already surrounded by a try/catch, andgetOrNull
/getOrDefault
are useful for situations in which a failure is not critical. Other places in this library already containfold
methods similar to theResult
type.This PR adds extension functions to
ResponseMessage
that match the ones present onResult
.I'm not sure what type of tests are appropriate for these functions, if any, considering that I don't see any tests for the Kotlin
Result
implementation of these functions.