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

◆ ConsumeIntegerDigitsMultiSegment()

ConsumeNumberResult System.Text.Json.Utf8JsonReader.ConsumeIntegerDigitsMultiSegment ( ref ReadOnlySpan< byte > data,
ref int i )
inlineprivate

Definition at line 3004 of file Utf8JsonReader.cs.

3005 {
3006 byte value = 0;
3007 int num = 0;
3008 while (i < data.Length)
3009 {
3010 value = data[i];
3011 if (!JsonHelpers.IsDigit(value))
3012 {
3013 break;
3014 }
3015 num++;
3016 i++;
3017 }
3018 if (i >= data.Length)
3019 {
3020 if (IsLastSpan)
3021 {
3022 _bytePositionInLine += num;
3023 return ConsumeNumberResult.Success;
3024 }
3025 while (true)
3026 {
3027 if (!GetNextSpan())
3028 {
3029 if (IsLastSpan)
3030 {
3031 _bytePositionInLine += num;
3032 return ConsumeNumberResult.Success;
3033 }
3034 return ConsumeNumberResult.NeedMoreData;
3035 }
3036 _totalConsumed += i;
3037 _bytePositionInLine += num;
3038 num = 0;
3039 HasValueSequence = true;
3040 i = 0;
3041 data = _buffer;
3042 while (i < data.Length)
3043 {
3044 value = data[i];
3045 if (!JsonHelpers.IsDigit(value))
3046 {
3047 break;
3048 }
3049 i++;
3050 }
3052 if (i < data.Length)
3053 {
3054 break;
3055 }
3056 if (IsLastSpan)
3057 {
3058 return ConsumeNumberResult.Success;
3059 }
3060 }
3061 }
3062 else
3063 {
3064 _bytePositionInLine += num;
3065 }
3066 if (JsonConstants.Delimiters.IndexOf(value) >= 0)
3067 {
3068 return ConsumeNumberResult.Success;
3069 }
3070 return ConsumeNumberResult.OperationIncomplete;
3071 }

References System.Text.Json.Utf8JsonReader._buffer, System.Text.Json.Utf8JsonReader._bytePositionInLine, System.Text.Json.Utf8JsonReader._totalConsumed, System.Text.Json.JsonConstants.Delimiters, System.Text.Json.Utf8JsonReader.GetNextSpan(), System.Text.Json.Utf8JsonReader.HasValueSequence, System.Text.Json.JsonHelpers.IsDigit(), System.Text.Json.Utf8JsonReader.IsLastSpan, and System.value.

Referenced by System.Text.Json.Utf8JsonReader.ConsumeDecimalDigitsMultiSegment(), and System.Text.Json.Utf8JsonReader.TryGetNumberMultiSegment().