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

◆ WriteMultiSegment< T >()

static void System.Buffers.BuffersExtensions.WriteMultiSegment< T > ( IBufferWriter< T > writer,
in ReadOnlySpan< T > source,
Span< T > destination )
inlinestaticprivate

Definition at line 104 of file BuffersExtensions.cs.

105 {
106 ReadOnlySpan<T> readOnlySpan = source;
107 while (true)
108 {
109 int num = Math.Min(destination.Length, readOnlySpan.Length);
110 readOnlySpan.Slice(0, num).CopyTo(destination);
111 writer.Advance(num);
112 readOnlySpan = readOnlySpan.Slice(num);
113 if (readOnlySpan.Length > 0)
114 {
115 destination = writer.GetSpan();
116 if (destination.IsEmpty)
117 {
119 }
120 continue;
121 }
122 break;
123 }
124 }
static void ThrowArgumentOutOfRangeException(System.ExceptionArgument argument)

References System.destination, System.ReadOnlySpan< T >.Length, System.Math.Min(), System.ReadOnlySpan< T >.Slice(), System.source, System.ThrowHelper.ThrowArgumentOutOfRangeException(), and System.writer.

Referenced by System.Buffers.BuffersExtensions.Write< T >().