Add predicate to GetAndFetchLatest to determine if a result should be cached. #397
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.
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Feature: This adds an optional
Func<T, bool>
parameter toGetAndFetchLatest(...)
. This predicate is run on fetched results to determine if those results should be cached. If the predicate exists and the call fails, the data in the cache for a given key will not be invalidated and the fetched result will not be stored.What is the current behavior? (You can also link to an open issue here)
Whenever a fetch result is returned and does not throw an error, it is put into the cache for the given key.
What is the new behavior (if this is a feature change)?
If the predicate is not sent in, nothing changes from the existing code. If a predicate is entered and the predicate result is
false
, the fetched data is not stored. Otherwise, data is stored as expected.Does this PR introduce a breaking change?
No. As the new predicate is optional, users can continue using
GetAndFetchLatest(...)
without knowing there is a change.Please check if the PR fulfills these requirements