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 };
     }));
 }
Ejemplo n.º 3
0
        /// <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)));
            }
        }
Ejemplo n.º 4
0
        /// <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)));
        }
Ejemplo n.º 5
0
        public IAsyncEnumerable <StructResult <StrongFingerprint> > EnumerateStrongFingerprints(Context context)
        {
            var ctx = new OperationContext(context);

            return(AsyncEnumerableExtensions.CreateSingleProducerTaskAsyncEnumerable(() => EnumerateStrongFingerprintsAsync(ctx)));
        }