Class EventStreamExtensions
- Namespace
- LfrlAnvil.Reactive.Extensions
- Assembly
- LfrlAnvil.Reactive.Core.dll
Contains IEventStream<TEvent> extension methods.
public static class EventStreamExtensions
- Inheritance
-
EventStreamExtensions
- Inherited Members
Methods
Aggregate<TEvent>(IEventStream<TEvent>, Func<TEvent, TEvent, TEvent>)
Decorates the event stream with EventListenerAggregateDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Aggregate<TEvent>(this IEventStream<TEvent> source, Func<TEvent, TEvent, TEvent> func)
Parameters
sourceIEventStream<TEvent>Source event stream.
funcFunc<TEvent, TEvent, TEvent>Aggregator delegate.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Aggregate<TEvent>(IEventStream<TEvent>, Func<TEvent, TEvent, TEvent>, TEvent)
Decorates the event stream with EventListenerAggregateDecorator<TEvent> with an initial event to publish immediately.
[Pure]
public static IEventStream<TEvent> Aggregate<TEvent>(this IEventStream<TEvent> source, Func<TEvent, TEvent, TEvent> func, TEvent seed)
Parameters
sourceIEventStream<TEvent>Source event stream.
funcFunc<TEvent, TEvent, TEvent>Aggregator delegate.
seedTEventInitial event to publish immediately.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Append<TEvent>(IEventStream<TEvent>, IEnumerable<TEvent>)
Decorates the event stream with EventListenerAppendDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Append<TEvent>(this IEventStream<TEvent> source, IEnumerable<TEvent> values)
Parameters
sourceIEventStream<TEvent>Source event stream.
valuesIEnumerable<TEvent>Collection of values to append.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Append<TEvent>(IEventStream<TEvent>, params TEvent[])
Decorates the event stream with EventListenerAppendDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Append<TEvent>(this IEventStream<TEvent> source, params TEvent[] values)
Parameters
sourceIEventStream<TEvent>Source event stream.
valuesTEvent[]Collection of values to append.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
AuditUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerAuditUntilDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> AuditUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
sourceIEventStream<TEvent>Source event stream.
targetIEventStream<TTargetEvent>Target event stream to wait for before emitting the last emitted event.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TTargetEventTarget event type.
BufferUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerBufferUntilDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<ReadOnlyMemory<TEvent>> BufferUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
sourceIEventStream<TEvent>Source event stream.
targetIEventStream<TTargetEvent>Target event stream to wait for before emitting the underlying buffer.
Returns
- IEventStream<ReadOnlyMemory<TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TTargetEventTarget event type.
Buffer<TEvent>(IEventStream<TEvent>, int)
Decorates the event stream with EventListenerBufferDecorator<TEvent>.
[Pure]
public static IEventStream<ReadOnlyMemory<TEvent>> Buffer<TEvent>(this IEventStream<TEvent> source, int bufferLength)
Parameters
sourceIEventStream<TEvent>Source event stream.
bufferLengthintSize of the underlying buffer.
Returns
- IEventStream<ReadOnlyMemory<TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Exceptions
- ArgumentOutOfRangeException
When
bufferLengthis less than 1.
Catch<TEvent, TException>(IEventStream<TEvent>, Action<TException>)
Decorates the event stream with EventListenerCatchDecorator<TEvent, TException>.
[Pure]
public static IEventStream<TEvent> Catch<TEvent, TException>(this IEventStream<TEvent> source, Action<TException> onError) where TException : Exception
Parameters
sourceIEventStream<TEvent>Source event stream.
onErrorAction<TException>Delegate to invoke once an exception is thrown by the decorated event listener.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TExceptionException type.
ConcatAll<TEvent>(IEventStream<IEventStream<TEvent>>)
Decorates the event stream with EventListenerMergeAllDecorator<TEvent> with maximum number of concurrently active inner event streams equal to 1.
[Pure]
public static IEventStream<TEvent> ConcatAll<TEvent>(this IEventStream<IEventStream<TEvent>> source)
Parameters
sourceIEventStream<IEventStream<TEvent>>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
ContinueWith<TEvent, TNextEvent>(IEventStream<TEvent>, Func<TEvent, IEventStream<TNextEvent>>)
Decorates the event stream with EventListenerContinueWithDecorator<TEvent, TNextEvent>.
[Pure]
public static IEventStream<TNextEvent> ContinueWith<TEvent, TNextEvent>(this IEventStream<TEvent> source, Func<TEvent, IEventStream<TNextEvent>> continuationFactory)
Parameters
sourceIEventStream<TEvent>Source event stream.
continuationFactoryFunc<TEvent, IEventStream<TNextEvent>>Delegate that creates the continuation event stream based on the last emitted event.
Returns
- IEventStream<TNextEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TNextEventNext event type.
DebounceUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerDebounceUntilDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> DebounceUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
sourceIEventStream<TEvent>Source event stream.
targetIEventStream<TTargetEvent>Target event stream to wait for before emitting the stored event.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TTargetEventTarget event type.
DefaultIfEmpty<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerDefaultIfEmptyDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent?> DefaultIfEmpty<TEvent>(this IEventStream<TEvent> source)
Parameters
sourceIEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
DefaultIfEmpty<TEvent>(IEventStream<TEvent>, TEvent)
Decorates the event stream with EventListenerDefaultIfEmptyDecorator<TEvent> with a custom default value.
[Pure]
public static IEventStream<TEvent> DefaultIfEmpty<TEvent>(this IEventStream<TEvent> source, TEvent defaultValue)
Parameters
sourceIEventStream<TEvent>Source event stream.
defaultValueTEventDefault value.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
DistinctByUntilChanged<TEvent, TKey>(IEventStream<TEvent>, Func<TEvent, TKey>)
Decorates the event stream with EventListenerDistinctUntilChangedDecorator<TEvent, TKey> with Default key equality comparer.
[Pure]
public static IEventStream<TEvent> DistinctByUntilChanged<TEvent, TKey>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector)
Parameters
sourceIEventStream<TEvent>Source event stream.
keySelectorFunc<TEvent, TKey>Event key selector.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TKeyEvent's key type.
DistinctByUntilChanged<TEvent, TKey>(IEventStream<TEvent>, Func<TEvent, TKey>, IEqualityComparer<TKey>)
Decorates the event stream with EventListenerDistinctUntilChangedDecorator<TEvent, TKey>.
[Pure]
public static IEventStream<TEvent> DistinctByUntilChanged<TEvent, TKey>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector, IEqualityComparer<TKey> equalityComparer)
Parameters
sourceIEventStream<TEvent>Source event stream.
keySelectorFunc<TEvent, TKey>Event key selector.
equalityComparerIEqualityComparer<TKey>Key equality comparer.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TKeyEvent's key type.
DistinctByUntil<TEvent, TKey, TTargetEvent>(IEventStream<TEvent>, Func<TEvent, TKey>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerDistinctUntilDecorator<TEvent, TKey, TTargetEvent> with Default key equality comparer.
[Pure]
public static IEventStream<TEvent> DistinctByUntil<TEvent, TKey, TTargetEvent>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector, IEventStream<TTargetEvent> target)
Parameters
sourceIEventStream<TEvent>Source event stream.
keySelectorFunc<TEvent, TKey>Event key selector.
targetIEventStream<TTargetEvent>Target event stream whose events cause the underlying distinct keys tracker to be reset.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TKeyEvent's key type.
TTargetEventTarget event type.
DistinctByUntil<TEvent, TKey, TTargetEvent>(IEventStream<TEvent>, Func<TEvent, TKey>, IEqualityComparer<TKey>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerDistinctUntilDecorator<TEvent, TKey, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> DistinctByUntil<TEvent, TKey, TTargetEvent>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector, IEqualityComparer<TKey> equalityComparer, IEventStream<TTargetEvent> target)
Parameters
sourceIEventStream<TEvent>Source event stream.
keySelectorFunc<TEvent, TKey>Event key selector.
equalityComparerIEqualityComparer<TKey>Key equality comparer.
targetIEventStream<TTargetEvent>Target event stream whose events cause the underlying distinct keys tracker to be reset.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TKeyEvent's key type.
TTargetEventTarget event type.
DistinctBy<TEvent, TKey>(IEventStream<TEvent>, Func<TEvent, TKey>)
Decorates the event stream with EventListenerDistinctDecorator<TEvent, TKey> with Default key equality comparer.
[Pure]
public static IEventStream<TEvent> DistinctBy<TEvent, TKey>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector)
Parameters
sourceIEventStream<TEvent>Source event stream.
keySelectorFunc<TEvent, TKey>Event key selector.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TKeyEvent's key type.
DistinctBy<TEvent, TKey>(IEventStream<TEvent>, Func<TEvent, TKey>, IEqualityComparer<TKey>)
Decorates the event stream with EventListenerDistinctDecorator<TEvent, TKey>.
[Pure]
public static IEventStream<TEvent> DistinctBy<TEvent, TKey>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector, IEqualityComparer<TKey> equalityComparer)
Parameters
sourceIEventStream<TEvent>Source event stream.
keySelectorFunc<TEvent, TKey>Event key selector.
equalityComparerIEqualityComparer<TKey>Key equality comparer.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TKeyEvent's key type.
DistinctUntilChanged<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerDistinctUntilChangedDecorator<TEvent, TKey> where event is the key, with Default event equality comparer.
[Pure]
public static IEventStream<TEvent> DistinctUntilChanged<TEvent>(this IEventStream<TEvent> source)
Parameters
sourceIEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
DistinctUntilChanged<TEvent>(IEventStream<TEvent>, IEqualityComparer<TEvent>)
Decorates the event stream with EventListenerDistinctUntilChangedDecorator<TEvent, TKey> where event is the key.
[Pure]
public static IEventStream<TEvent> DistinctUntilChanged<TEvent>(this IEventStream<TEvent> source, IEqualityComparer<TEvent> equalityComparer)
Parameters
sourceIEventStream<TEvent>Source event stream.
equalityComparerIEqualityComparer<TEvent>Key equality comparer.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
DistinctUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerDistinctUntilDecorator<TEvent, TKey, TTargetEvent> where event is the key, with Default key equality comparer.
[Pure]
public static IEventStream<TEvent> DistinctUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
sourceIEventStream<TEvent>Source event stream.
targetIEventStream<TTargetEvent>Target event stream whose events cause the underlying distinct keys tracker to be reset.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TTargetEventTarget event type.
DistinctUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEqualityComparer<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerDistinctUntilDecorator<TEvent, TKey, TTargetEvent> where event is the key.
[Pure]
public static IEventStream<TEvent> DistinctUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEqualityComparer<TEvent> equalityComparer, IEventStream<TTargetEvent> target)
Parameters
sourceIEventStream<TEvent>Source event stream.
equalityComparerIEqualityComparer<TEvent>Key equality comparer.
targetIEventStream<TTargetEvent>Target event stream whose events cause the underlying distinct keys tracker to be reset.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TTargetEventTarget event type.
Distinct<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerDistinctDecorator<TEvent, TKey> where event is the key, with Default event equality comparer.
[Pure]
public static IEventStream<TEvent> Distinct<TEvent>(this IEventStream<TEvent> source)
Parameters
sourceIEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Distinct<TEvent>(IEventStream<TEvent>, IEqualityComparer<TEvent>)
Decorates the event stream with EventListenerDistinctDecorator<TEvent, TKey> where event is the key.
[Pure]
public static IEventStream<TEvent> Distinct<TEvent>(this IEventStream<TEvent> source, IEqualityComparer<TEvent> equalityComparer)
Parameters
sourceIEventStream<TEvent>Source event stream.
equalityComparerIEqualityComparer<TEvent>Key equality comparer.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
ElementAt<TEvent>(IEventStream<TEvent>, int)
Decorates the event stream with EventListenerElementAtDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> ElementAt<TEvent>(this IEventStream<TEvent> source, int index)
Parameters
sourceIEventStream<TEvent>Source event stream.
indexint0-based position of the desired event.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
ExhaustAll<TEvent>(IEventStream<IEventStream<TEvent>>)
Decorates the event stream with EventListenerExhaustAllDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> ExhaustAll<TEvent>(this IEventStream<IEventStream<TEvent>> source)
Parameters
sourceIEventStream<IEventStream<TEvent>>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
First<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerFirstDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> First<TEvent>(this IEventStream<TEvent> source)
Parameters
sourceIEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Flatten<TEvent>(IEventStream<IEnumerable<TEvent>>)
Decorates the event stream with EventListenerSelectManyDecorator<TSourceEvent, TNextEvent> that emits all nested elements.
[Pure]
public static IEventStream<TEvent> Flatten<TEvent>(this IEventStream<IEnumerable<TEvent>> source)
Parameters
sourceIEventStream<IEnumerable<TEvent>>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Flatten<TSourceEvent, TInnerEvent>(IEventStream<TSourceEvent>, Func<TSourceEvent, IEnumerable<TInnerEvent>>)
Decorates the event stream with EventListenerSelectManyDecorator<TSourceEvent, TNextEvent> that emits pairs of (source, inner) events.
[Pure]
public static IEventStream<Pair<TSourceEvent, TInnerEvent>> Flatten<TSourceEvent, TInnerEvent>(this IEventStream<TSourceEvent> source, Func<TSourceEvent, IEnumerable<TInnerEvent>> selector)
Parameters
sourceIEventStream<TSourceEvent>Source event stream.
selectorFunc<TSourceEvent, IEnumerable<TInnerEvent>>Inner event collection selector.
Returns
- IEventStream<Pair<TSourceEvent, TInnerEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TSourceEventSource event type.
TInnerEventInner event type.
Flatten<TSourceEvent, TInnerEvent, TNextEvent>(IEventStream<TSourceEvent>, Func<TSourceEvent, IEnumerable<TInnerEvent>>, Func<TSourceEvent, TInnerEvent, TNextEvent>)
Decorates the event stream with EventListenerSelectManyDecorator<TSourceEvent, TNextEvent> that emits pairs of (source, inner) events mapped to the desired event type.
[Pure]
public static IEventStream<TNextEvent> Flatten<TSourceEvent, TInnerEvent, TNextEvent>(this IEventStream<TSourceEvent> source, Func<TSourceEvent, IEnumerable<TInnerEvent>> selector, Func<TSourceEvent, TInnerEvent, TNextEvent> resultMapper)
Parameters
sourceIEventStream<TSourceEvent>Source event stream.
selectorFunc<TSourceEvent, IEnumerable<TInnerEvent>>Inner event collection selector.
resultMapperFunc<TSourceEvent, TInnerEvent, TNextEvent>Next event selector..
Returns
- IEventStream<TNextEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TSourceEventSource event type.
TInnerEventInner event type.
TNextEventNext event type.
ForEach<TEvent>(IEventStream<TEvent>, Action<TEvent>)
Decorates the event stream with EventListenerForEachDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> ForEach<TEvent>(this IEventStream<TEvent> source, Action<TEvent> action)
Parameters
sourceIEventStream<TEvent>Source event stream.
actionAction<TEvent>Delegate to invoke on each event.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
GroupBy<TEvent, TKey>(IEventStream<TEvent>, Func<TEvent, TKey>)
Decorates the event stream with EventListenerGroupByDecorator<TEvent, TKey> with Default event key equality comparer.
[Pure]
public static IEventStream<EventGrouping<TKey, TEvent>> GroupBy<TEvent, TKey>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector) where TKey : notnull
Parameters
sourceIEventStream<TEvent>Source event stream.
keySelectorFunc<TEvent, TKey>Event's key selector.
Returns
- IEventStream<EventGrouping<TKey, TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TKeyEvent's key type.
GroupBy<TEvent, TKey>(IEventStream<TEvent>, Func<TEvent, TKey>, IEqualityComparer<TKey>)
Decorates the event stream with EventListenerGroupByDecorator<TEvent, TKey>.
[Pure]
public static IEventStream<EventGrouping<TKey, TEvent>> GroupBy<TEvent, TKey>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector, IEqualityComparer<TKey> equalityComparer) where TKey : notnull
Parameters
sourceIEventStream<TEvent>Source event stream.
keySelectorFunc<TEvent, TKey>Event's key selector.
equalityComparerIEqualityComparer<TKey>Key equality comparer.
Returns
- IEventStream<EventGrouping<TKey, TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TKeyEvent's key type.
Ignore<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerIgnoreDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Ignore<TEvent>(this IEventStream<TEvent> source)
Parameters
sourceIEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Last<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerLastDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Last<TEvent>(this IEventStream<TEvent> source)
Parameters
sourceIEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
MergeAll<TEvent>(IEventStream<IEventStream<TEvent>>, int)
Decorates the event stream with EventListenerMergeAllDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> MergeAll<TEvent>(this IEventStream<IEventStream<TEvent>> source, int maxConcurrency = 2147483647)
Parameters
sourceIEventStream<IEventStream<TEvent>>Source event stream.
maxConcurrencyintMaximum number of concurrently active inner event streams. Equal to MaxValue by default.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Exceptions
- ArgumentOutOfRangeException
When
maxConcurrencyis less than 1.
Prepend<TEvent>(IEventStream<TEvent>, IEnumerable<TEvent>)
Decorates the event stream with EventListenerPrependDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Prepend<TEvent>(this IEventStream<TEvent> source, IEnumerable<TEvent> values)
Parameters
sourceIEventStream<TEvent>Source event stream.
valuesIEnumerable<TEvent>Collection of values to prepend.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Prepend<TEvent>(IEventStream<TEvent>, params TEvent[])
Decorates the event stream with EventListenerPrependDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Prepend<TEvent>(this IEventStream<TEvent> source, params TEvent[] values)
Parameters
sourceIEventStream<TEvent>Source event stream.
valuesTEvent[]Collection of values to prepend.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
SampleWhen<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerSampleWhenDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> SampleWhen<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
sourceIEventStream<TEvent>Source event stream.
targetIEventStream<TTargetEvent>Target event stream to wait for before emitting the last stored event.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TTargetEventTarget event type.
SelectMany<TSourceEvent, TNextEvent>(IEventStream<TSourceEvent>, Func<TSourceEvent, IEnumerable<TNextEvent>>)
Decorates the event stream with EventListenerSelectManyDecorator<TSourceEvent, TNextEvent>.
[Pure]
public static IEventStream<TNextEvent> SelectMany<TSourceEvent, TNextEvent>(this IEventStream<TSourceEvent> source, Func<TSourceEvent, IEnumerable<TNextEvent>> selector)
Parameters
sourceIEventStream<TSourceEvent>Source event stream.
selectorFunc<TSourceEvent, IEnumerable<TNextEvent>>Next event collection selector.
Returns
- IEventStream<TNextEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TSourceEventSource event type.
TNextEventNext event type.
Select<TSourceEvent, TNextEvent>(IEventStream<TSourceEvent>, Func<TSourceEvent, TNextEvent>)
Decorates the event stream with EventListenerSelectDecorator<TSourceEvent, TNextEvent>.
[Pure]
public static IEventStream<TNextEvent> Select<TSourceEvent, TNextEvent>(this IEventStream<TSourceEvent> source, Func<TSourceEvent, TNextEvent> selector)
Parameters
sourceIEventStream<TSourceEvent>Source event stream.
selectorFunc<TSourceEvent, TNextEvent>Next event selector.
Returns
- IEventStream<TNextEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TSourceEventSource event type.
TNextEventNext event type.
Single<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerSingleDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Single<TEvent>(this IEventStream<TEvent> source)
Parameters
sourceIEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
SkipLast<TEvent>(IEventStream<TEvent>, int)
Decorates the event stream with EventListenerSkipLastDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> SkipLast<TEvent>(this IEventStream<TEvent> source, int count)
Parameters
sourceIEventStream<TEvent>Source event stream.
countintNumber of events at the end of the sequence to skip.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
SkipUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerSkipUntilDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> SkipUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
sourceIEventStream<TEvent>Source event stream.
targetIEventStream<TTargetEvent>Target event stream to wait for before starting to notify the decorated event listener.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TTargetEventTarget event type.
SkipWhile<TEvent>(IEventStream<TEvent>, Func<TEvent, bool>)
Decorates the event stream with EventListenerSkipWhileDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> SkipWhile<TEvent>(this IEventStream<TEvent> source, Func<TEvent, bool> predicate)
Parameters
sourceIEventStream<TEvent>Source event stream.
predicateFunc<TEvent, bool>Predicate that skips events until the first event that passes it (returns true).
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Skip<TEvent>(IEventStream<TEvent>, int)
Decorates the event stream with EventListenerSkipDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Skip<TEvent>(this IEventStream<TEvent> source, int count)
Parameters
sourceIEventStream<TEvent>Source event stream.
countintNumber of events at the beginning of the sequence to skip.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
SwitchAll<TEvent>(IEventStream<IEventStream<TEvent>>)
Decorates the event stream with EventListenerSwitchAllDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> SwitchAll<TEvent>(this IEventStream<IEventStream<TEvent>> source)
Parameters
sourceIEventStream<IEventStream<TEvent>>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TakeLast<TEvent>(IEventStream<TEvent>, int)
Decorates the event stream with EventListenerTakeLastDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> TakeLast<TEvent>(this IEventStream<TEvent> source, int count)
Parameters
sourceIEventStream<TEvent>Source event stream.
countintNumber of events at the end of the sequence to take.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TakeUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerTakeUntilDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> TakeUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
sourceIEventStream<TEvent>Source event stream.
targetIEventStream<TTargetEvent>Target event stream to wait for before disposing the subscriber.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TTargetEventTarget event type.
TakeWhile<TEvent>(IEventStream<TEvent>, Func<TEvent, bool>)
Decorates the event stream with EventListenerTakeWhileDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> TakeWhile<TEvent>(this IEventStream<TEvent> source, Func<TEvent, bool> predicate)
Parameters
sourceIEventStream<TEvent>Source event stream.
predicateFunc<TEvent, bool>Predicate that takes events until the first event that fails it (returns false).
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Take<TEvent>(IEventStream<TEvent>, int)
Decorates the event stream with EventListenerTakeDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Take<TEvent>(this IEventStream<TEvent> source, int count)
Parameters
sourceIEventStream<TEvent>Source event stream.
countintNumber of events at the beginning of the sequence to take.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
ThrottleUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerThrottleUntilDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> ThrottleUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
sourceIEventStream<TEvent>Source event stream.
targetIEventStream<TTargetEvent>Target event stream to wait for before emitting any subsequent events.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
TTargetEventTarget event type.
ToAsyncEnumerable<TEvent>(IEventStream<TEvent>, int, bool)
Creates a new async enumerable from the provided event source.
public static IAsyncEnumerable<AsyncEnumerableEvent<TEvent>> ToAsyncEnumerable<TEvent>(this IEventStream<TEvent> source, int maxBufferSize = 2147483647, bool discardLatest = false)
Parameters
sourceIEventStream<TEvent>Source event stream.
maxBufferSizeintMax size of the internal buffer of events. Equal to MaxValue by default.
discardLatestboolSpecifies whether to discard latest events when the internal buffer is full, otherwise earliest events will be discarded. Equal to false by default.
Returns
- IAsyncEnumerable<AsyncEnumerableEvent<TEvent>>
New async enumerable instance.
Type Parameters
TEventEvent type.
Exceptions
- ArgumentOutOfRangeException
When
maxBufferSizeis less than 0.
ToTask<TEvent>(IEventStream<TEvent>, CancellationToken)
Creates a new Task<TResult> instance from the provided event source, that completes
when the event source subscriber is disposed, with the last emitted event as its result.
public static Task<TEvent?> ToTask<TEvent>(this IEventStream<TEvent> source, CancellationToken cancellationToken = default)
Parameters
sourceIEventStream<TEvent>Source event stream.
cancellationTokenCancellationTokenTask's cancellation token.
Returns
- Task<TEvent>
New Task<TResult> instance.
Type Parameters
TEventEvent type.
UseSynchronizationContext<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerUseSynchronizationContextDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> UseSynchronizationContext<TEvent>(this IEventStream<TEvent> source)
Parameters
sourceIEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Exceptions
- InvalidOperationException
When Current is null.
WhereNotNull<TEvent>(IEventStream<TEvent?>)
Decorates the event stream with EventListenerWhereDecorator<TEvent> that filters out null events.
[Pure]
public static IEventStream<TEvent> WhereNotNull<TEvent>(this IEventStream<TEvent?> source) where TEvent : struct
Parameters
sourceIEventStream<TEvent?>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
WhereNotNull<TEvent>(IEventStream<TEvent?>)
Decorates the event stream with EventListenerWhereDecorator<TEvent> that filters out null events.
[Pure]
public static IEventStream<TEvent> WhereNotNull<TEvent>(this IEventStream<TEvent?> source) where TEvent : class
Parameters
sourceIEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
WhereNotNull<TEvent>(IEventStream<TEvent?>, IEqualityComparer<TEvent>)
Decorates the event stream with EventListenerWhereDecorator<TEvent> that filters out null events.
[Pure]
public static IEventStream<TEvent> WhereNotNull<TEvent>(this IEventStream<TEvent?> source, IEqualityComparer<TEvent> comparer)
Parameters
sourceIEventStream<TEvent>Source event stream.
comparerIEqualityComparer<TEvent>Custom equality comparer.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Where<TEvent>(IEventStream<TEvent>, Func<TEvent, bool>)
Decorates the event stream with EventListenerWhereDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Where<TEvent>(this IEventStream<TEvent> source, Func<TEvent, bool> predicate)
Parameters
sourceIEventStream<TEvent>Source event stream.
predicateFunc<TEvent, bool>Predicate used for filtering events. Events that return false will be skipped.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
WithIndex<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerWithIndexDecorator<TEvent>.
[Pure]
public static IEventStream<WithIndex<TEvent>> WithIndex<TEvent>(this IEventStream<TEvent> source)
Parameters
sourceIEventStream<TEvent>Source event stream.
Returns
- IEventStream<WithIndex<TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEventEvent type.
Zip<TSourceEvent, TTargetEvent>(IEventStream<TSourceEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerZipDecorator<TEvent, TTargetEvent, TNextEvent> that emits pairs of (source, target) events.
[Pure]
public static IEventStream<(TSourceEvent First, TTargetEvent Second)> Zip<TSourceEvent, TTargetEvent>(this IEventStream<TSourceEvent> source, IEventStream<TTargetEvent> target)
Parameters
sourceIEventStream<TSourceEvent>Source event stream.
targetIEventStream<TTargetEvent>Target event stream.
Returns
- IEventStream<(TSourceEvent First, TTargetEvent Second)>
Decorated IEventStream<TEvent> instance.
Type Parameters
TSourceEventSource event type.
TTargetEventTarget event type.
Zip<TSourceEvent, TTargetEvent, TNextEvent>(IEventStream<TSourceEvent>, IEventStream<TTargetEvent>, Func<TSourceEvent, TTargetEvent, TNextEvent>)
Decorates the event stream with EventListenerZipDecorator<TEvent, TTargetEvent, TNextEvent>.
[Pure]
public static IEventStream<TNextEvent> Zip<TSourceEvent, TTargetEvent, TNextEvent>(this IEventStream<TSourceEvent> source, IEventStream<TTargetEvent> target, Func<TSourceEvent, TTargetEvent, TNextEvent> selector)
Parameters
sourceIEventStream<TSourceEvent>Source event stream.
targetIEventStream<TTargetEvent>Target event stream.
selectorFunc<TSourceEvent, TTargetEvent, TNextEvent>Next event selector.
Returns
- IEventStream<TNextEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TSourceEventSource event type.
TTargetEventTarget event type.
TNextEventNext event type.