Пример #1
0
 private static bool StringMoveNext(ref RuneEnumerator e)
 {
     if (e._stringEnumerator.MoveNext())
     {
         e.Current = e._stringEnumerator.Current;
         return(true);
     }
     return(false);
 }
Пример #2
0
 private static bool InterfaceMoveNext(ref RuneEnumerator e)
 {
     if (e._interfaceEnumerator != null &&
         e._interfaceEnumerator.MoveNext())
     {
         e.Current = e._interfaceEnumerator.Current;
         return(true);
     }
     return(false);
 }
Пример #3
0
        private static bool BuilderMoveNext(ref RuneEnumerator e)
        {
TryReturnFromChunk:
            if (e._spanEnumerator.MoveNext())
            {
                e.Current = e._spanEnumerator.Current;
                return(true);
            }

            if (e._builderEnumerator.MoveNext())
            {
                var chunkSpan = e._builderEnumerator.Current.Span;
                e._spanEnumerator = chunkSpan.EnumerateRunes();
                goto TryReturnFromChunk;
            }
            return(false);
        }