package jsoniter

var digits []uint32

func init() {
	digits = make([]uint32, 1000)
	for  := uint32(0);  < 1000; ++ {
		digits[] = ((( / 100) + '0') << 16) + (((( / 10) % 10) + '0') << 8) + %10 + '0'
		if  < 10 {
			digits[] += 2 << 24
		} else if  < 100 {
			digits[] += 1 << 24
		}
	}
}

func writeFirstBuf( []byte,  uint32) []byte {
	 :=  >> 24
	if  == 0 {
		 = append(, byte(>>16), byte(>>8))
	} else if  == 1 {
		 = append(, byte(>>8))
	}
	 = append(, byte())
	return 
}

func writeBuf( []byte,  uint32) []byte {
	return append(, byte(>>16), byte(>>8), byte())
}

// WriteUint8 write uint8 to stream
func ( *Stream) ( uint8) {
	.buf = writeFirstBuf(.buf, digits[])
}

// WriteInt8 write int8 to stream
func ( *Stream) ( int8) {
	var  uint8
	if  < 0 {
		 = uint8(-)
		.buf = append(.buf, '-')
	} else {
		 = uint8()
	}
	.buf = writeFirstBuf(.buf, digits[])
}

// WriteUint16 write uint16 to stream
func ( *Stream) ( uint16) {
	 :=  / 1000
	if  == 0 {
		.buf = writeFirstBuf(.buf, digits[])
		return
	}
	 :=  - *1000
	.buf = writeFirstBuf(.buf, digits[])
	.buf = writeBuf(.buf, digits[])
	return
}

// WriteInt16 write int16 to stream
func ( *Stream) ( int16) {
	var  uint16
	if  < 0 {
		 = uint16(-)
		.buf = append(.buf, '-')
	} else {
		 = uint16()
	}
	.WriteUint16()
}

// WriteUint32 write uint32 to stream
func ( *Stream) ( uint32) {
	 :=  / 1000
	if  == 0 {
		.buf = writeFirstBuf(.buf, digits[])
		return
	}
	 :=  - *1000
	 :=  / 1000
	if  == 0 {
		.buf = writeFirstBuf(.buf, digits[])
		.buf = writeBuf(.buf, digits[])
		return
	}
	 :=  - *1000
	 :=  / 1000
	if  == 0 {
		.buf = writeFirstBuf(.buf, digits[])
	} else {
		 :=  - *1000
		.buf = append(.buf, byte(+'0'))
		.buf = writeBuf(.buf, digits[])
	}
	.buf = writeBuf(.buf, digits[])
	.buf = writeBuf(.buf, digits[])
}

// WriteInt32 write int32 to stream
func ( *Stream) ( int32) {
	var  uint32
	if  < 0 {
		 = uint32(-)
		.buf = append(.buf, '-')
	} else {
		 = uint32()
	}
	.WriteUint32()
}

// WriteUint64 write uint64 to stream
func ( *Stream) ( uint64) {
	 :=  / 1000
	if  == 0 {
		.buf = writeFirstBuf(.buf, digits[])
		return
	}
	 :=  - *1000
	 :=  / 1000
	if  == 0 {
		.buf = writeFirstBuf(.buf, digits[])
		.buf = writeBuf(.buf, digits[])
		return
	}
	 :=  - *1000
	 :=  / 1000
	if  == 0 {
		.buf = writeFirstBuf(.buf, digits[])
		.buf = writeBuf(.buf, digits[])
		.buf = writeBuf(.buf, digits[])
		return
	}
	 :=  - *1000
	 :=  / 1000
	if  == 0 {
		.buf = writeFirstBuf(.buf, digits[])
		.buf = writeBuf(.buf, digits[])
		.buf = writeBuf(.buf, digits[])
		.buf = writeBuf(.buf, digits[])
		return
	}
	 :=  - *1000
	 :=  / 1000
	if  == 0 {
		.buf = writeFirstBuf(.buf, digits[])
		.buf = writeBuf(.buf, digits[])
		.buf = writeBuf(.buf, digits[])
		.buf = writeBuf(.buf, digits[])
		.buf = writeBuf(.buf, digits[])
		return
	}
	 :=  - *1000
	 :=  / 1000
	if  == 0 {
		.buf = writeFirstBuf(.buf, digits[])
	} else {
		.buf = writeFirstBuf(.buf, digits[])
		 :=  - *1000
		.buf = writeBuf(.buf, digits[])
	}
	.buf = writeBuf(.buf, digits[])
	.buf = writeBuf(.buf, digits[])
	.buf = writeBuf(.buf, digits[])
	.buf = writeBuf(.buf, digits[])
	.buf = writeBuf(.buf, digits[])
}

// WriteInt64 write int64 to stream
func ( *Stream) ( int64) {
	var  uint64
	if  < 0 {
		 = uint64(-)
		.buf = append(.buf, '-')
	} else {
		 = uint64()
	}
	.WriteUint64()
}

// WriteInt write int to stream
func ( *Stream) ( int) {
	.WriteInt64(int64())
}

// WriteUint write uint to stream
func ( *Stream) ( uint) {
	.WriteUint64(uint64())
}