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

◆ TryParseTimeSpanC()

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

Definition at line 3709 of file Utf8Parser.cs.

3710 {
3711 TimeSpanSplitter timeSpanSplitter = default(TimeSpanSplitter);
3712 if (!timeSpanSplitter.TrySplitTimeSpan(source, periodUsedToSeparateDay: true, out bytesConsumed))
3713 {
3714 value = default(TimeSpan);
3715 return false;
3716 }
3717 bool isNegative = timeSpanSplitter.IsNegative;
3718 bool flag;
3719 switch (timeSpanSplitter.Separators)
3720 {
3721 case 0u:
3722 flag = TryCreateTimeSpan(isNegative, timeSpanSplitter.V1, 0u, 0u, 0u, 0u, out value);
3723 break;
3724 case 16777216u:
3725 flag = TryCreateTimeSpan(isNegative, 0u, timeSpanSplitter.V1, timeSpanSplitter.V2, 0u, 0u, out value);
3726 break;
3727 case 33619968u:
3728 flag = TryCreateTimeSpan(isNegative, timeSpanSplitter.V1, timeSpanSplitter.V2, timeSpanSplitter.V3, 0u, 0u, out value);
3729 break;
3730 case 16842752u:
3731 flag = TryCreateTimeSpan(isNegative, 0u, timeSpanSplitter.V1, timeSpanSplitter.V2, timeSpanSplitter.V3, 0u, out value);
3732 break;
3733 case 33620224u:
3734 flag = TryCreateTimeSpan(isNegative, timeSpanSplitter.V1, timeSpanSplitter.V2, timeSpanSplitter.V3, timeSpanSplitter.V4, 0u, out value);
3735 break;
3736 case 16843264u:
3737 flag = TryCreateTimeSpan(isNegative, 0u, timeSpanSplitter.V1, timeSpanSplitter.V2, timeSpanSplitter.V3, timeSpanSplitter.V4, out value);
3738 break;
3739 case 33620226u:
3740 flag = TryCreateTimeSpan(isNegative, timeSpanSplitter.V1, timeSpanSplitter.V2, timeSpanSplitter.V3, timeSpanSplitter.V4, timeSpanSplitter.V5, out value);
3741 break;
3742 default:
3743 value = default(TimeSpan);
3744 flag = false;
3745 break;
3746 }
3747 if (!flag)
3748 {
3749 bytesConsumed = 0;
3750 return false;
3751 }
3752 return true;
3753 }
static bool TryCreateTimeSpan(bool isNegative, uint days, uint hours, uint minutes, uint seconds, uint fraction, out TimeSpan timeSpan)

References System.Buffers.Text.Utf8Parser.TimeSpanSplitter.IsNegative, System.Buffers.Text.Utf8Parser.TimeSpanSplitter.Separators, System.source, System.Buffers.Text.Utf8Parser.TryCreateTimeSpan(), System.Buffers.Text.Utf8Parser.TimeSpanSplitter.TrySplitTimeSpan(), System.Buffers.Text.Utf8Parser.TimeSpanSplitter.V1, System.Buffers.Text.Utf8Parser.TimeSpanSplitter.V2, System.Buffers.Text.Utf8Parser.TimeSpanSplitter.V3, System.Buffers.Text.Utf8Parser.TimeSpanSplitter.V4, System.Buffers.Text.Utf8Parser.TimeSpanSplitter.V5, and System.value.

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