feat: Add Require and Check helper methods #295
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.
Context
Starting from this Task #281, I have implemented two new methods for Result, TaskResult and AsyncResult.
Method 1 - Require
In the Issue i called it
ensure
, because that is what the C#FunctionalExtensions however I decided to name itrequire
to be more in line with the otherrequireX
functions.Require applies a predicate to the Ok value of a Result. If the predicate is false, then a new Error Result is returned with a user provided error.
Method 2 - Check
Same as described in the github task, check applies a more general function of the from
'ok -> Result<unit, 'error>
to the Ok value of a Result. It returns the original Ok value is the function returns Ok (), otherwise it returns the new error returned by the applied function.I have added docs.
I am super open to feedback and changes! Please fire away