public TResult Snapshot <TResult>(SelectorMarker <TResult> marker) { bool hasValue = _observableState.TryGetValue(out var value); return(GetSelectorFromMarker(marker).Apply(hasValue ? value : default(TState))); }
private ISelector <TState, TResult> GetSelectorFromMarker <TResult>(SelectorMarker <TResult> marker) { return((ISelector <TState, TResult>)_selectors[marker.GetType()]); }
public IObservable <TResult> Select <TResult>(SelectorMarker <TResult> marker) { return(GetSelectorFromMarker(marker).Apply(_observableState)); }