コード例 #1
0
        private void MoveNext()
        {
            while (_enumerator.MoveNext())
            {
                _index = 0;
                var memory = _enumerator.Current;
                var length = memory.Length;
                if (length != 0)
                {
                    _currentSpan = memory.Span;
                    return;
                }
            }

            _end = true;
        }
コード例 #2
0
        public static int Seek(ReadCursor begin, ReadCursor end, out ReadCursor result, byte byte0, byte byte1, byte byte2)
        {
            var enumerator = new BufferEnumerator(begin, end);

            while (enumerator.MoveNext())
            {
                var span  = enumerator.Current.Span;
                int index = span.IndexOfAny(byte0, byte1, byte2);

                if (index != -1)
                {
                    result = enumerator.CreateCursor(index);
                    return(span[index]);
                }
            }

            result = end;
            return(-1);
        }