Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ReadOnlySequence() [5/5]

Definition at line 139 of file ReadOnlySequence.cs.

140 {
141 ArraySegment<T> segment;
142 if (MemoryMarshal.TryGetMemoryManager<T, MemoryManager<T>>(memory, out MemoryManager<T> manager, out int start, out int length))
143 {
146 _startInteger = ReadOnlySequence.MemoryManagerToSequenceStart(start);
148 }
149 else if (MemoryMarshal.TryGetArray(memory, out segment))
150 {
151 T[] array = segment.Array;
152 int offset = segment.Offset;
156 _endInteger = ReadOnlySequence.ArrayToSequenceEnd(offset + segment.Count);
157 }
158 else if (typeof(T) == typeof(char))
159 {
160 if (!MemoryMarshal.TryGetString((ReadOnlyMemory<char>)(object)memory, out string text, out int start2, out length))
161 {
163 }
166 _startInteger = ReadOnlySequence.StringToSequenceStart(start2);
167 _endInteger = ReadOnlySequence.StringToSequenceEnd(start2 + length);
168 }
169 else
170 {
172 _startObject = null;
173 _endObject = null;
174 _startInteger = 0;
175 _endInteger = 0;
176 }
177 }
static bool TryGetString(ReadOnlyMemory< char > memory, [NotNullWhen(true)] out string? text, out int start, out int length)
static void ThrowInvalidOperationException()
ReadOnlySequence(object startSegment, int startIndexAndFlags, object endSegment, int endIndexAndFlags)

References System.Buffers.ReadOnlySequence< T >._endInteger, System.Buffers.ReadOnlySequence< T >._endObject, System.Buffers.ReadOnlySequence< T >._startInteger, System.Buffers.ReadOnlySequence< T >._startObject, System.array, System.ArraySegment< T >.Array, System.Buffers.ReadOnlySequence< T >.ArrayToSequenceEnd(), System.ArraySegment< T >.Count, System.length, System.manager, System.Buffers.ReadOnlySequence< T >.MemoryManagerToSequenceStart(), System.offset, System.ArraySegment< T >.Offset, System.start, System.Buffers.ReadOnlySequence< T >.StringToSequenceEnd(), System.Buffers.ReadOnlySequence< T >.StringToSequenceStart(), System.text, System.ThrowHelper.ThrowInvalidOperationException(), and System.Runtime.InteropServices.MemoryMarshal.TryGetString().