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

◆ TryGetNumber()

bool System.Text.Json.Utf8JsonReader.TryGetNumber ( ReadOnlySpan< byte > data,
out int consumed )
inlineprivate

Definition at line 1020 of file Utf8JsonReader.cs.

1021 {
1022 consumed = 0;
1023 int i = 0;
1025 if (consumeNumberResult == ConsumeNumberResult.NeedMoreData)
1026 {
1027 return false;
1028 }
1029 byte b = data[i];
1030 if (b == 48)
1031 {
1033 if (consumeNumberResult2 == ConsumeNumberResult.NeedMoreData)
1034 {
1035 return false;
1036 }
1037 if (consumeNumberResult2 != 0)
1038 {
1039 b = data[i];
1040 goto IL_00a3;
1041 }
1042 }
1043 else
1044 {
1045 i++;
1047 if (consumeNumberResult3 == ConsumeNumberResult.NeedMoreData)
1048 {
1049 return false;
1050 }
1051 if (consumeNumberResult3 != 0)
1052 {
1053 b = data[i];
1054 if (b != 46 && b != 69 && b != 101)
1055 {
1057 ThrowHelper.ThrowJsonReaderException(ref this, ExceptionResource.ExpectedEndOfDigitNotFound, b);
1058 }
1059 goto IL_00a3;
1060 }
1061 }
1062 goto IL_0152;
1063 IL_00a3:
1064 if (b == 46)
1065 {
1066 i++;
1068 if (consumeNumberResult4 == ConsumeNumberResult.NeedMoreData)
1069 {
1070 return false;
1071 }
1073 {
1074 goto IL_0152;
1075 }
1076 b = data[i];
1077 if (b != 69 && b != 101)
1078 {
1080 ThrowHelper.ThrowJsonReaderException(ref this, ExceptionResource.ExpectedNextDigitEValueNotFound, b);
1081 }
1082 }
1083 i++;
1085 if (consumeNumberResult == ConsumeNumberResult.NeedMoreData)
1086 {
1087 return false;
1088 }
1089 i++;
1090 switch (ConsumeIntegerDigits(ref data, ref i))
1091 {
1092 case ConsumeNumberResult.NeedMoreData:
1093 return false;
1094 default:
1096 ThrowHelper.ThrowJsonReaderException(ref this, ExceptionResource.ExpectedEndOfDigitNotFound, data[i]);
1097 break;
1098 case ConsumeNumberResult.Success:
1099 break;
1100 }
1101 goto IL_0152;
1102 IL_0152:
1103 ValueSpan = data.Slice(0, i);
1104 consumed = i;
1105 return true;
1106 }
ReadOnlySpan< T > Slice(int start)
ConsumeNumberResult ConsumeSign(ref ReadOnlySpan< byte > data, ref int i)
ConsumeNumberResult ConsumeNegativeSign(ref ReadOnlySpan< byte > data, ref int i)
ConsumeNumberResult ConsumeZero(ref ReadOnlySpan< byte > data, ref int i)
ConsumeNumberResult ConsumeIntegerDigits(ref ReadOnlySpan< byte > data, ref int i)
ConsumeNumberResult ConsumeDecimalDigits(ref ReadOnlySpan< byte > data, ref int i)

References System.Text.Json.Utf8JsonReader._bytePositionInLine, System.Text.Json.Utf8JsonReader.ConsumeDecimalDigits(), System.Text.Json.Utf8JsonReader.ConsumeIntegerDigits(), System.Text.Json.Utf8JsonReader.ConsumeNegativeSign(), System.Text.Json.Utf8JsonReader.ConsumeSign(), System.Text.Json.Utf8JsonReader.ConsumeZero(), System.Text.Json.Dictionary, System.ReadOnlySpan< T >.Slice(), System.Text.Json.ThrowHelper.ThrowJsonReaderException(), and System.Text.Json.Utf8JsonReader.ValueSpan.

Referenced by System.Text.Json.Utf8JsonReader.ConsumeNumber(), and System.Text.Json.Utf8JsonReader.ReadFirstToken().