Esempio n. 1
0
            static IEnumerable <ReadOnlySequence <byte> > MakeSequences(byte[] buffer)
            {
                if (buffer.Length == 0)
                {
                    return(new[] { ReadOnlySequence <byte> .Empty });
                }

                if (buffer.Length < 2)
                {
                    return(new[] { new ReadOnlySequence <byte>(buffer) });
                }

                var split = buffer.Length / 2;

                var left  = buffer.Take(split).ToArray();
                var right = buffer.Skip(split).ToArray();

                var ret = new List <ReadOnlySequence <byte> >();

                ret.Add(new ReadOnlySequence <byte>(buffer));

                var start = new NaughtyStrings_ByteNode(left.AsMemory());
                var end   = start.Append(right.AsMemory());

                ret.Add(new ReadOnlySequence <byte>(start, 0, end, end.Memory.Length));

                return(ret);
            }
Esempio n. 2
0
            public NaughtyStrings_ByteNode Append(ReadOnlyMemory <byte> m)
            {
                var ret = new NaughtyStrings_ByteNode(m);

                ret.RunningIndex = this.Memory.Length;

                this.Next = ret;

                return(ret);
            }