Пример #1
0
        internal unsafe static void ToString(this DateTime time, CharStream charStream, char dateSplit = DateSplitChar)
        {
            char *timeFixed = (char *)charStream.GetBeforeMove(19 * sizeof(char));

            toString(time, timeFixed, dateSplit);
            *(timeFixed + 10) = ' ';
            toString((int)((time.Ticks % TimeSpan.TicksPerDay) / TimeSpan.TicksPerSecond), timeFixed + 11);
        }
Пример #2
0
        private void emptyString()
        {
            //<![CDATA[]]>
            byte *write = CharStream.GetBeforeMove(24);

            *(long *)write = '<' + ('!' << 16) + ((long)'[' << 32) + ((long)'C' << 48);
            *(long *)(write + sizeof(long))     = 'D' + ('A' << 16) + ((long)'T' << 32) + ((long)'A' << 48);
            *(long *)(write + sizeof(long) * 2) = '[' + (']' << 16) + ((long)']' << 32) + ((long)'>' << 48);
        }
 public void CallSerialize(bool value)
 {
     if (value)
     {
         *(long *)CharStream.GetBeforeMove(4 * sizeof(char)) = 'T' + ('r' << 16) + ((long)'u' << 32) + ((long)'e' << 48);
     }
     else
     {
         byte *chars = (byte *)CharStream.GetBeforeMove(5 * sizeof(char));
         *(long *)chars = 'F' + ('a' << 16) + ((long)'l' << 32) + ((long)'s' << 48);
         *(char *)(chars + sizeof(long)) = 'e';
     }
 }
        public void CallSerialize(char value)
        {
            if (((bits[(byte)value] & XmlDeSerializer.EncodeSpaceBit) | (value & 0xff00)) == 0)
            {
                switch ((byte)value)
                {
                case (byte)'\t':
                    *(long *)CharStream.GetBeforeMove(4 * sizeof(char)) = '&' + ('#' << 16) + ((long)'9' << 32) + ((long)';' << 48);
                    return;

                case (byte)'\n':
                    byte *data10 = CharStream.GetBeforeMove(5 * sizeof(char));
                    *(long *)data10 = '&' + ('#' << 16) + ((long)'1' << 32) + ((long)'0' << 48);
                    *(char *)(data10 + sizeof(long)) = ';';
                    return;

                case (byte)'\r':
                    byte *data13 = CharStream.GetBeforeMove(5 * sizeof(char));
                    *(long *)data13 = '&' + ('#' << 16) + ((long)'1' << 32) + ((long)'3' << 48);
                    *(char *)(data13 + sizeof(long)) = ';';
                    return;

                case (byte)' ':
                    byte *data32 = CharStream.GetBeforeMove(5 * sizeof(char));
                    *(long *)data32 = '&' + ('#' << 16) + ((long)'3' << 32) + ((long)'2' << 48);
                    *(char *)(data32 + sizeof(long)) = ';';
                    return;

                case (byte)'&':
                    byte *data38 = CharStream.GetBeforeMove(5 * sizeof(char));
                    *(long *)data38 = '&' + ('#' << 16) + ((long)'3' << 32) + ((long)'8' << 48);
                    *(char *)(data38 + sizeof(long)) = ';';
                    return;

                case (byte)'<':
                    *(long *)CharStream.GetBeforeMove(4 * sizeof(char)) = '&' + ('l' << 16) + ((long)'t' << 32) + ((long)';' << 48);
                    return;

                case (byte)'>':
                    *(long *)CharStream.GetBeforeMove(4 * sizeof(char)) = '&' + ('g' << 16) + ((long)'t' << 32) + ((long)';' << 48);
                    return;
                }
            }
            CharStream.Write(value);
        }
 public void CallSerialize(Guid value)
 {
     new GuidCreator {
         Value = value
     }.ToString((char *)CharStream.GetBeforeMove(36 * sizeof(char)));
 }