private static Async::System.Collections.Generic.IAsyncEnumerable <Result <LevelSelectors> > GetLevelSelectorsEnumerableAsync( this ILevelSelectorsProvider session, Context context, Fingerprint weakFingerprint, CancellationToken cts, int level) { return(AsyncEnumerableExtensions.CreateSingleProducerTaskAsyncEnumerable <Result <LevelSelectors> >( async() => { var result = await session.GetLevelSelectorsAsync(context, weakFingerprint, cts, level); return new[] { result }; })); }
private static IAsyncEnumerable <Result <LevelSelectors> > GetLevelSelectorsEnumerableAsync( this IReadOnlyMemoizationSessionWithLevelSelectors session, Context context, Fingerprint weakFingerprint, CancellationToken cts, int level) { return(AsyncEnumerableExtensions.CreateSingleProducerTaskAsyncEnumerable <Result <LevelSelectors> >( async() => { var result = await session.GetLevelSelectorsAsync(context, weakFingerprint, cts, level); return new[] { result }; })); }
/// <summary> /// Enumerate known selectors for a given weak fingerprint. /// </summary> internal IAsyncEnumerable <GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts) { return(AsyncEnumerableExtensions.CreateSingleProducerTaskAsyncEnumerable(() => getSelectorsCore())); async Task <IEnumerable <GetSelectorResult> > getSelectorsCore() { var selectors = await GetSelectorsCoreAsync(context, weakFingerprint); if (!selectors) { return(new GetSelectorResult[] { new GetSelectorResult(selectors) }); } return(selectors.Value.Select(s => new GetSelectorResult(s))); } }
/// <inheritdoc /> public Async::System.Collections.Generic.IAsyncEnumerable <StructResult <StrongFingerprint> > EnumerateStrongFingerprints(Context context) { var ctx = new OperationContext(context); return(AsyncEnumerableExtensions.CreateSingleProducerTaskAsyncEnumerable <StructResult <StrongFingerprint> >(() => _database.EnumerateStrongFingerprintsAsync(ctx))); }
public IAsyncEnumerable <StructResult <StrongFingerprint> > EnumerateStrongFingerprints(Context context) { var ctx = new OperationContext(context); return(AsyncEnumerableExtensions.CreateSingleProducerTaskAsyncEnumerable(() => EnumerateStrongFingerprintsAsync(ctx))); }