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

◆ DrainLeftoverDataForGetCharCount()

int System.Text.DecoderNLS.DrainLeftoverDataForGetCharCount ( ReadOnlySpan< byte > bytes,
out int bytesConsumed )
inlinepackageinherited

Definition at line 197 of file DecoderNLS.cs.

198 {
199 Span<byte> span = stackalloc byte[4];
200 span = span.Slice(0, ConcatInto(GetLeftoverData(), bytes, span));
201 int result = 0;
202 Rune value;
203 int bytesConsumed2;
204 switch (_encoding.DecodeFirstRune(span, out value, out bytesConsumed2))
205 {
206 case OperationStatus.Done:
207 result = value.Utf16SequenceLength;
208 break;
209 case OperationStatus.NeedMoreData:
210 if (!MustFlush)
211 {
212 break;
213 }
214 goto default;
215 default:
216 if (base.FallbackBuffer.Fallback(span.Slice(0, bytesConsumed2).ToArray(), -_leftoverByteCount))
217 {
219 }
220 break;
221 }
222 bytesConsumed = bytesConsumed2 - _leftoverByteCount;
223 return result;
224 }
static int ConcatInto(ReadOnlySpan< byte > srcLeft, ReadOnlySpan< byte > srcRight, Span< byte > dest)
ReadOnlySpan< byte > GetLeftoverData()
readonly Encoding _encoding
Definition DecoderNLS.cs:8
DecoderFallbackBuffer _fallbackBuffer
Definition Decoder.cs:9
virtual OperationStatus DecodeFirstRune(ReadOnlySpan< byte > bytes, out Rune value, out int bytesConsumed)
Definition Encoding.cs:1109

References System.Text.DecoderNLS._encoding, System.Text.Decoder._fallbackBuffer, System.Text.DecoderNLS._leftoverByteCount, System.bytes, System.Text.DecoderNLS.ConcatInto(), System.Text.Encoding.DecodeFirstRune(), System.Text.DecoderFallbackBuffer.DrainRemainingDataForGetCharCount(), System.Text.DecoderNLS.GetLeftoverData(), System.Text.DecoderNLS.MustFlush, System.Span< T >.Slice(), and System.value.

Referenced by System.Text.Encoding.GetCharCountWithFallback().