Example #1
0
        public bool TryGet(ref Collections.Sequences.Position position, out ReadOnlyMemory <byte> item, bool advance = true)
        {
            var(data, index) = position.Get <object>();
            var p      = new Position(data, index);
            var result = _buffer.TryGet(ref p, out item);

            if (advance)
            {
                position = Collections.Sequences.Position.Create(p.Segment, p.Index);
            }

            return(result);
        }
        public void ReadableBufferSequenceWorks()
        {
            var readable = BufferUtilities.CreateBuffer(new byte[] { 1 }, new byte[] { 2, 2 }, new byte[] { 3, 3, 3 }).AsSequence();

            Collections.Sequences.Position position = readable.First;
            int spanCount = 0;

            while (readable.TryGet(ref position, out ReadOnlyMemory <byte> memory))
            {
                spanCount++;
                Assert.Equal(spanCount, memory.Length);
            }
            Assert.Equal(3, spanCount);
        }