6 digits = make([]uint32, 1000)
7 for i := uint32(0); i < 1000; i++ {
8 digits[i] = (((i / 100) + '0') << 16) + ((((i / 10) % 10) + '0') << 8) + i%10 + '0'
17 func writeFirstBuf(space []byte, v uint32) []byte {
20 space = append(space, byte(v>>16), byte(v>>8))
21 } else if start == 1 {
22 space = append(space, byte(v>>8))
24 space = append(space, byte(v))
28 func writeBuf(buf []byte, v uint32) []byte {
29 return append(buf, byte(v>>16), byte(v>>8), byte(v))
32 // WriteUint8 write uint8 to stream
33 func (stream *Stream) WriteUint8(val uint8) {
34 stream.buf = writeFirstBuf(stream.buf, digits[val])
37 // WriteInt8 write int8 to stream
38 func (stream *Stream) WriteInt8(nval int8) {
42 stream.buf = append(stream.buf, '-')
46 stream.buf = writeFirstBuf(stream.buf, digits[val])
49 // WriteUint16 write uint16 to stream
50 func (stream *Stream) WriteUint16(val uint16) {
53 stream.buf = writeFirstBuf(stream.buf, digits[val])
57 stream.buf = writeFirstBuf(stream.buf, digits[q1])
58 stream.buf = writeBuf(stream.buf, digits[r1])
62 // WriteInt16 write int16 to stream
63 func (stream *Stream) WriteInt16(nval int16) {
67 stream.buf = append(stream.buf, '-')
71 stream.WriteUint16(val)
74 // WriteUint32 write uint32 to stream
75 func (stream *Stream) WriteUint32(val uint32) {
78 stream.buf = writeFirstBuf(stream.buf, digits[val])
84 stream.buf = writeFirstBuf(stream.buf, digits[q1])
85 stream.buf = writeBuf(stream.buf, digits[r1])
91 stream.buf = writeFirstBuf(stream.buf, digits[q2])
94 stream.buf = append(stream.buf, byte(q3+'0'))
95 stream.buf = writeBuf(stream.buf, digits[r3])
97 stream.buf = writeBuf(stream.buf, digits[r2])
98 stream.buf = writeBuf(stream.buf, digits[r1])
101 // WriteInt32 write int32 to stream
102 func (stream *Stream) WriteInt32(nval int32) {
106 stream.buf = append(stream.buf, '-')
110 stream.WriteUint32(val)
113 // WriteUint64 write uint64 to stream
114 func (stream *Stream) WriteUint64(val uint64) {
117 stream.buf = writeFirstBuf(stream.buf, digits[val])
123 stream.buf = writeFirstBuf(stream.buf, digits[q1])
124 stream.buf = writeBuf(stream.buf, digits[r1])
130 stream.buf = writeFirstBuf(stream.buf, digits[q2])
131 stream.buf = writeBuf(stream.buf, digits[r2])
132 stream.buf = writeBuf(stream.buf, digits[r1])
138 stream.buf = writeFirstBuf(stream.buf, digits[q3])
139 stream.buf = writeBuf(stream.buf, digits[r3])
140 stream.buf = writeBuf(stream.buf, digits[r2])
141 stream.buf = writeBuf(stream.buf, digits[r1])
147 stream.buf = writeFirstBuf(stream.buf, digits[q4])
148 stream.buf = writeBuf(stream.buf, digits[r4])
149 stream.buf = writeBuf(stream.buf, digits[r3])
150 stream.buf = writeBuf(stream.buf, digits[r2])
151 stream.buf = writeBuf(stream.buf, digits[r1])
157 stream.buf = writeFirstBuf(stream.buf, digits[q5])
159 stream.buf = writeFirstBuf(stream.buf, digits[q6])
161 stream.buf = writeBuf(stream.buf, digits[r6])
163 stream.buf = writeBuf(stream.buf, digits[r5])
164 stream.buf = writeBuf(stream.buf, digits[r4])
165 stream.buf = writeBuf(stream.buf, digits[r3])
166 stream.buf = writeBuf(stream.buf, digits[r2])
167 stream.buf = writeBuf(stream.buf, digits[r1])
170 // WriteInt64 write int64 to stream
171 func (stream *Stream) WriteInt64(nval int64) {
175 stream.buf = append(stream.buf, '-')
179 stream.WriteUint64(val)
182 // WriteInt write int to stream
183 func (stream *Stream) WriteInt(val int) {
184 stream.WriteInt64(int64(val))
187 // WriteUint write uint to stream
188 func (stream *Stream) WriteUint(val uint) {
189 stream.WriteUint64(uint64(val))