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

◆ TryParseTimeSpanFraction()

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

Definition at line 3773 of file Utf8Parser.cs.

3774 {
3775 int num = 0;
3776 if (num == source.Length)
3777 {
3778 value = 0u;
3779 bytesConsumed = 0;
3780 return false;
3781 }
3782 uint num2 = (uint)(source[num] - 48);
3783 if (num2 > 9)
3784 {
3785 value = 0u;
3786 bytesConsumed = 0;
3787 return false;
3788 }
3789 num++;
3790 uint num3 = num2;
3791 int num4 = 1;
3792 while (num != source.Length)
3793 {
3794 num2 = (uint)(source[num] - 48);
3795 if (num2 > 9)
3796 {
3797 break;
3798 }
3799 num++;
3800 num4++;
3801 if (num4 > 7)
3802 {
3803 value = 0u;
3804 bytesConsumed = 0;
3805 return false;
3806 }
3807 num3 = 10 * num3 + num2;
3808 }
3809 switch (num4)
3810 {
3811 case 6:
3812 num3 *= 10;
3813 break;
3814 case 5:
3815 num3 *= 100;
3816 break;
3817 case 4:
3818 num3 *= 1000;
3819 break;
3820 case 3:
3821 num3 *= 10000;
3822 break;
3823 case 2:
3824 num3 *= 100000;
3825 break;
3826 default:
3827 num3 *= 1000000;
3828 break;
3829 case 7:
3830 break;
3831 }
3832 value = num3;
3833 bytesConsumed = num;
3834 return true;
3835 }

References System.source, and System.value.

Referenced by System.Buffers.Text.Utf8Parser.TimeSpanSplitter.ParseComponent(), and System.Buffers.Text.Utf8Parser.TryParseTimeSpanBigG().