Example #1
0
        internal void WriteNumeric(HtmlBufferWriter writer, uint number)
        {
            const byte AsciiDigitStart = (byte)'0';

            if (number < 10)
            {
                writer.Write((byte)(number + AsciiDigitStart));
            }
            else if (number < 100)
            {
                var tens = (byte)((number * 205u) >> 11); // div10, valid to 1028
                var span = new byte[2];
                span[0] = (byte)(tens + AsciiDigitStart);
                span[1] = (byte)(number - (tens * 10) + AsciiDigitStart);
                writer.Write(span, 0, 2);
            }
            else if (number < 1000)
            {
                var digit0   = (byte)((number * 41u) >> 12);  // div100, valid to 1098
                var digits01 = (byte)((number * 205u) >> 11); // div10, valid to 1028
                var span     = new byte[3];
                span[0] = (byte)(digit0 + AsciiDigitStart);
                span[1] = (byte)(digits01 - (digit0 * 10) + AsciiDigitStart);
                span[2] = (byte)(number - (digits01 * 10) + AsciiDigitStart);
                writer.Write(span, 0, 3);
            }
        }
 public HtmlBufferWriter GetHtmlBufferWriter()
 {
     if (mHtmlBufferWriter == null)
     {
         mHtmlBufferWriter = new HtmlBufferWriter(2048);
     }
     return(mHtmlBufferWriter);
 }