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

◆ TryParseGuidCore()

static bool System.Buffers.Text.Utf8Parser.TryParseGuidCore ( ReadOnlySpan< byte > source,
out Guid value,
out int bytesConsumed,
int ends )
inlinestaticprivate

Definition at line 1175 of file Utf8Parser.cs.

1176 {
1177 int num = 36 + ((ends != 0) ? 2 : 0);
1178 if (source.Length < num)
1179 {
1180 value = default(Guid);
1181 bytesConsumed = 0;
1182 return false;
1183 }
1184 if (ends != 0)
1185 {
1186 if (source[0] != (byte)ends)
1187 {
1188 value = default(Guid);
1189 bytesConsumed = 0;
1190 return false;
1191 }
1192 source = source.Slice(1);
1193 ends >>= 8;
1194 }
1195 if (!TryParseUInt32X(source, out var value2, out var bytesConsumed2))
1196 {
1197 value = default(Guid);
1198 bytesConsumed = 0;
1199 return false;
1200 }
1201 if (bytesConsumed2 != 8)
1202 {
1203 value = default(Guid);
1204 bytesConsumed = 0;
1205 return false;
1206 }
1207 if (source[bytesConsumed2] != 45)
1208 {
1209 value = default(Guid);
1210 bytesConsumed = 0;
1211 return false;
1212 }
1213 source = source.Slice(9);
1214 if (!TryParseUInt16X(source, out var value3, out bytesConsumed2))
1215 {
1216 value = default(Guid);
1217 bytesConsumed = 0;
1218 return false;
1219 }
1220 if (bytesConsumed2 != 4)
1221 {
1222 value = default(Guid);
1223 bytesConsumed = 0;
1224 return false;
1225 }
1226 if (source[bytesConsumed2] != 45)
1227 {
1228 value = default(Guid);
1229 bytesConsumed = 0;
1230 return false;
1231 }
1232 source = source.Slice(5);
1233 if (!TryParseUInt16X(source, out var value4, out bytesConsumed2))
1234 {
1235 value = default(Guid);
1236 bytesConsumed = 0;
1237 return false;
1238 }
1239 if (bytesConsumed2 != 4)
1240 {
1241 value = default(Guid);
1242 bytesConsumed = 0;
1243 return false;
1244 }
1245 if (source[bytesConsumed2] != 45)
1246 {
1247 value = default(Guid);
1248 bytesConsumed = 0;
1249 return false;
1250 }
1251 source = source.Slice(5);
1252 if (!TryParseUInt16X(source, out var value5, out bytesConsumed2))
1253 {
1254 value = default(Guid);
1255 bytesConsumed = 0;
1256 return false;
1257 }
1258 if (bytesConsumed2 != 4)
1259 {
1260 value = default(Guid);
1261 bytesConsumed = 0;
1262 return false;
1263 }
1264 if (source[bytesConsumed2] != 45)
1265 {
1266 value = default(Guid);
1267 bytesConsumed = 0;
1268 return false;
1269 }
1270 source = source.Slice(5);
1271 if (!TryParseUInt64X(source, out var value6, out bytesConsumed2))
1272 {
1273 value = default(Guid);
1274 bytesConsumed = 0;
1275 return false;
1276 }
1277 if (bytesConsumed2 != 12)
1278 {
1279 value = default(Guid);
1280 bytesConsumed = 0;
1281 return false;
1282 }
1283 if (ends != 0 && source[bytesConsumed2] != (byte)ends)
1284 {
1285 value = default(Guid);
1286 bytesConsumed = 0;
1287 return false;
1288 }
1289 bytesConsumed = num;
1290 value = new Guid((int)value2, (short)value3, (short)value4, (byte)(value5 >> 8), (byte)value5, (byte)(value6 >> 40), (byte)(value6 >> 32), (byte)(value6 >> 24), (byte)(value6 >> 16), (byte)(value6 >> 8), (byte)value6);
1291 return true;
1292 }
static bool TryParseUInt16X(ReadOnlySpan< byte > source, out ushort value, out int bytesConsumed)
static bool TryParseUInt32X(ReadOnlySpan< byte > source, out uint value, out int bytesConsumed)
static bool TryParseUInt64X(ReadOnlySpan< byte > source, out ulong value, out int bytesConsumed)

References System.source, System.Buffers.Text.Utf8Parser.TryParseUInt16X(), System.Buffers.Text.Utf8Parser.TryParseUInt32X(), System.Buffers.Text.Utf8Parser.TryParseUInt64X(), and System.value.

Referenced by System.Buffers.Text.Utf8Parser.TryParse().