private static unsafe void AppendDigitsFast(ref char* buffer, int value, int maxLen, char padding = '0')
{
char* p = buffer + maxLen;
int n = value;
do
{
*--p = (char)(n % 10 + '0');
n /= 10;
} while ((n != 0) && (p > buffer));
int digits = (int)(buffer + maxLen - p);
while ((digits < maxLen) && (p > buffer))
{
*--p = padding;
digits++;
}
buffer += maxLen;
}