Feature: ToObservableOptional Extension Method for IObservable<IChangeSet<TObject, TKey>> #740
+421
−0
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.
Description
This PR adds
ToObservableOptional
, an extension method for observable changesets that allows the consumer to create anIObservable<Optional<TObject>>
from anIObservable<IChangeSet<TObject, TKey>>
which emits the latest value associated with the specified key whenever that value is updated.This method is the inverse counterpart to the
EditDiff
method from #739 (which yields anIObservable<IChangeSet<TObject,TKey>>
given anIObservable<Optional<TObject>>
.Parameters
Optional boolean
initialOptionalWhenMissing
allows the consumer to specify if they want to receive an initialOptional.None
if the value is not immediately added to the changeset at the time of subscription.This extension method will also optionally accept an
IEqualityComparer
that will be used to compare the values of the changeset so that duplicate values are never emitted sequentially.Example
Among the many uses, this method can be used in conjunction with
FilterOnObservable
from #735 in order to filter items in one changeset using the value of a specific Key in a child changeset.