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 improves the performance of the
filterfunction.The main change is that we don't call
Result.map predicate. Let's look at the JS representation once compiled:In both versions, the function checks whether a result is
Okor not. In the proposed version we do not callResult.mapwhen we don't need to (ifResultisErr), and this removes an additional pattern matching and re-wrapping inOkthat are done inResult.map. In both cases, there is less work done that in the original version.Here is a benchmark: https://ellie-app.com/fCC677f4YLKa1

I have also tried a different version of the function which is available and benchmarked here but, the I find the benchmarks inconclusive compared to the original version, but they're definitely worse than the version from this PR.