コード例 #1
0
 public static Generic.IEnumerator <Tasks.Task <char?> > Decode(this Generic.IEnumerator <Tasks.Task <byte?> > me, Encoding encoding)
 {
     while (true)
     {
         yield return(encoding.Decode(me));
     }
 }
コード例 #2
0
        static async Tasks.Task <T> FilterNext <T>(this Generic.IEnumerator <Tasks.Task <T> > me, Func <T, bool> predicate)
        {
            var result = await me.Next();

            if (!predicate(result))
            {
                result = await me.FilterNext(predicate);
            }
            return(result);
        }
コード例 #3
0
ファイル: Encoding.cs プロジェクト: Spaxys/Kean
 public Tasks.Task <char?> Decode(Generic.IEnumerator <Tasks.Task <byte?> > data)
 {
     return(this.Decode(() =>
     {
         Tasks.Task <byte?> result = null;
         if (data.MoveNext())
         {
             result = data.Current;
         }
         return result;
     }));
 }
コード例 #4
0
        public static async Tasks.Task <bool> Join(this ITextWriter me, Generic.IEnumerator <Func <ITextWriter, Tasks.Task <bool> > > items, Func <ITextWriter, Tasks.Task <bool> > separator = null)
        {
            bool result = items.MoveNext() && await items.Current(me);

            while (result && items.MoveNext())
            {
                if (separator.NotNull())
                {
                    result &= await separator(me);
                }
                result &= await items.Current(me);
            }
            return(result);
        }
コード例 #5
0
        public static async Tasks.Task <Generic.IEnumerator <T> > WhenAll <T>(this Generic.IEnumerator <Tasks.Task <T> > me)
        {
            var current = await me.Next();

            return(current.IsNull() ? Enumerator.Create(current) : (await me.WhenAll()).Prepend(current));
        }
コード例 #6
0
 public static Generic.IEnumerator <Tasks.Task <T> > FilterTasks <T>(this Generic.IEnumerator <Tasks.Task <T> > me, Func <T, bool> predicate)
 {
     return(Enumerator.Create(() => me.FilterNext(predicate), me.Reset, me.Dispose));
 }
コード例 #7
0
 public static Tasks.Task <bool> Join(this ITextWriter me, Generic.IEnumerator <Func <ITextWriter, Tasks.Task <bool> > > items, string separator = null)
 {
     return(me.Join(items, separator.NotNull() ? (Func <ITextWriter, Tasks.Task <bool> >)(writer => writer.Write(separator)) : null));
 }