package gojay

import 

// EncodeFloat encodes a float64 to JSON
func ( *Encoder) ( float64) error {
	if .isPooled == 1 {
		panic(InvalidUsagePooledEncoderError("Invalid usage of pooled encoder"))
	}
	_, _ = .encodeFloat()
	,  := .Write()
	if  != nil {
		return 
	}
	return nil
}

// encodeFloat encodes a float64 to JSON
func ( *Encoder) ( float64) ([]byte, error) {
	.buf = strconv.AppendFloat(.buf, , 'f', -1, 64)
	return .buf, nil
}

// EncodeFloat32 encodes a float32 to JSON
func ( *Encoder) ( float32) error {
	if .isPooled == 1 {
		panic(InvalidUsagePooledEncoderError("Invalid usage of pooled encoder"))
	}
	_, _ = .encodeFloat32()
	,  := .Write()
	if  != nil {
		return 
	}
	return nil
}

func ( *Encoder) ( float32) ([]byte, error) {
	.buf = strconv.AppendFloat(.buf, float64(), 'f', -1, 32)
	return .buf, nil
}

// AddFloat adds a float64 to be encoded, must be used inside a slice or array encoding (does not encode a key)
func ( *Encoder) ( float64) {
	.Float64()
}

// AddFloatOmitEmpty adds a float64 to be encoded and skips it if its value is 0,
// must be used inside a slice or array encoding (does not encode a key).
func ( *Encoder) ( float64) {
	.Float64OmitEmpty()
}

// AddFloatNullEmpty adds a float64 to be encoded and skips it if its value is 0,
// must be used inside a slice or array encoding (does not encode a key).
func ( *Encoder) ( float64) {
	.Float64NullEmpty()
}

// Float adds a float64 to be encoded, must be used inside a slice or array encoding (does not encode a key)
func ( *Encoder) ( float64) {
	.Float64()
}

// FloatOmitEmpty adds a float64 to be encoded and skips it if its value is 0,
// must be used inside a slice or array encoding (does not encode a key).
func ( *Encoder) ( float64) {
	.Float64OmitEmpty()
}

// FloatNullEmpty adds a float64 to be encoded and skips it if its value is 0,
// must be used inside a slice or array encoding (does not encode a key).
func ( *Encoder) ( float64) {
	.Float64NullEmpty()
}

// AddFloatKey adds a float64 to be encoded, must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float64) {
	.Float64Key(, )
}

// AddFloatKeyOmitEmpty adds a float64 to be encoded and skips it if its value is 0.
// Must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float64) {
	.Float64KeyOmitEmpty(, )
}

// AddFloatKeyNullEmpty adds a float64 to be encoded and skips it if its value is 0.
// Must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float64) {
	.Float64KeyNullEmpty(, )
}

// FloatKey adds a float64 to be encoded, must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float64) {
	.Float64Key(, )
}

// FloatKeyOmitEmpty adds a float64 to be encoded and skips it if its value is 0.
// Must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float64) {
	.Float64KeyOmitEmpty(, )
}

// FloatKeyNullEmpty adds a float64 to be encoded and skips it if its value is 0.
// Must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float64) {
	.Float64KeyNullEmpty(, )
}

// AddFloat64 adds a float64 to be encoded, must be used inside a slice or array encoding (does not encode a key)
func ( *Encoder) ( float64) {
	.Float()
}

// AddFloat64OmitEmpty adds a float64 to be encoded and skips it if its value is 0,
// must be used inside a slice or array encoding (does not encode a key).
func ( *Encoder) ( float64) {
	.FloatOmitEmpty()
}

// Float64 adds a float64 to be encoded, must be used inside a slice or array encoding (does not encode a key)
func ( *Encoder) ( float64) {
	.grow(10)
	 := .getPreviousRune()
	if  != '[' {
		.writeByte(',')
	}
	.buf = strconv.AppendFloat(.buf, , 'f', -1, 64)
}

// Float64OmitEmpty adds a float64 to be encoded and skips it if its value is 0,
// must be used inside a slice or array encoding (does not encode a key).
func ( *Encoder) ( float64) {
	if  == 0 {
		return
	}
	.grow(10)
	 := .getPreviousRune()
	if  != '[' {
		.writeByte(',')
	}
	.buf = strconv.AppendFloat(.buf, , 'f', -1, 64)
}

// Float64NullEmpty adds a float64 to be encoded and skips it if its value is 0,
// must be used inside a slice or array encoding (does not encode a key).
func ( *Encoder) ( float64) {
	.grow(10)
	 := .getPreviousRune()
	if  != '[' {
		.writeByte(',')
	}
	if  == 0 {
		.writeBytes(nullBytes)
		return
	}
	.buf = strconv.AppendFloat(.buf, , 'f', -1, 64)
}

// AddFloat64Key adds a float64 to be encoded, must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float64) {
	.FloatKey(, )
}

// AddFloat64KeyOmitEmpty adds a float64 to be encoded and skips it if its value is 0.
// Must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float64) {
	.FloatKeyOmitEmpty(, )
}

// Float64Key adds a float64 to be encoded, must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float64) {
	if .hasKeys {
		if !.keyExists() {
			return
		}
	}
	 := .getPreviousRune()
	if  != '{' {
		.writeByte(',')
	}
	.grow(10)
	.writeByte('"')
	.writeStringEscape()
	.writeBytes(objKey)
	.buf = strconv.AppendFloat(.buf, , 'f', -1, 64)
}

// Float64KeyOmitEmpty adds a float64 to be encoded and skips it if its value is 0.
// Must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float64) {
	if .hasKeys {
		if !.keyExists() {
			return
		}
	}
	if  == 0 {
		return
	}
	.grow(10 + len())
	 := .getPreviousRune()
	if  != '{' {
		.writeByte(',')
	}
	.writeByte('"')
	.writeStringEscape()
	.writeBytes(objKey)
	.buf = strconv.AppendFloat(.buf, , 'f', -1, 64)
}

// Float64KeyNullEmpty adds a float64 to be encoded and skips it if its value is 0,
// must be used inside a slice or array encoding (does not encode a key).
func ( *Encoder) ( string,  float64) {
	if .hasKeys {
		if !.keyExists() {
			return
		}
	}
	.grow(10 + len())
	 := .getPreviousRune()
	if  != '{' {
		.writeByte(',')
	}
	.writeByte('"')
	.writeStringEscape()
	.writeBytes(objKey)
	if  == 0 {
		.writeBytes(nullBytes)
		return
	}
	.buf = strconv.AppendFloat(.buf, , 'f', -1, 64)
}

// AddFloat32 adds a float32 to be encoded, must be used inside a slice or array encoding (does not encode a key)
func ( *Encoder) ( float32) {
	.Float32()
}

// AddFloat32OmitEmpty adds an int to be encoded and skips it if its value is 0,
// must be used inside a slice or array encoding (does not encode a key).
func ( *Encoder) ( float32) {
	.Float32OmitEmpty()
}

// AddFloat32NullEmpty adds an int to be encoded and skips it if its value is 0,
// must be used inside a slice or array encoding (does not encode a key).
func ( *Encoder) ( float32) {
	.Float32NullEmpty()
}

// Float32 adds a float32 to be encoded, must be used inside a slice or array encoding (does not encode a key)
func ( *Encoder) ( float32) {
	 := .getPreviousRune()
	if  != '[' {
		.writeByte(',')
	}
	.buf = strconv.AppendFloat(.buf, float64(), 'f', -1, 32)
}

// Float32OmitEmpty adds an int to be encoded and skips it if its value is 0,
// must be used inside a slice or array encoding (does not encode a key).
func ( *Encoder) ( float32) {
	if  == 0 {
		return
	}
	.grow(10)
	 := .getPreviousRune()
	if  != '[' {
		.writeByte(',')
	}
	.buf = strconv.AppendFloat(.buf, float64(), 'f', -1, 32)
}

// Float32NullEmpty adds an int to be encoded and skips it if its value is 0,
// must be used inside a slice or array encoding (does not encode a key).
func ( *Encoder) ( float32) {
	.grow(10)
	 := .getPreviousRune()
	if  != '[' {
		.writeByte(',')
	}
	if  == 0 {
		.writeBytes(nullBytes)
		return
	}
	.buf = strconv.AppendFloat(.buf, float64(), 'f', -1, 32)
}

// AddFloat32Key adds a float32 to be encoded, must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float32) {
	.Float32Key(, )
}

// AddFloat32KeyOmitEmpty adds a float64 to be encoded and skips it if its value is 0.
// Must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float32) {
	.Float32KeyOmitEmpty(, )
}

// AddFloat32KeyNullEmpty adds a float64 to be encoded and skips it if its value is 0.
// Must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float32) {
	.Float32KeyNullEmpty(, )
}

// Float32Key adds a float32 to be encoded, must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float32) {
	if .hasKeys {
		if !.keyExists() {
			return
		}
	}
	.grow(10 + len())
	 := .getPreviousRune()
	if  != '{' {
		.writeByte(',')
	}
	.writeByte('"')
	.writeStringEscape()
	.writeByte('"')
	.writeByte(':')
	.buf = strconv.AppendFloat(.buf, float64(), 'f', -1, 32)
}

// Float32KeyOmitEmpty adds a float64 to be encoded and skips it if its value is 0.
// Must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float32) {
	if .hasKeys {
		if !.keyExists() {
			return
		}
	}
	if  == 0 {
		return
	}
	.grow(10 + len())
	 := .getPreviousRune()
	if  != '{' {
		.writeByte(',')
	}
	.writeByte('"')
	.writeStringEscape()
	.writeBytes(objKey)
	.buf = strconv.AppendFloat(.buf, float64(), 'f', -1, 32)
}

// Float32KeyNullEmpty adds a float64 to be encoded and skips it if its value is 0.
// Must be used inside an object as it will encode a key
func ( *Encoder) ( string,  float32) {
	if .hasKeys {
		if !.keyExists() {
			return
		}
	}
	.grow(10 + len())
	 := .getPreviousRune()
	if  != '{' {
		.writeByte(',')
	}
	.writeByte('"')
	.writeStringEscape()
	.writeBytes(objKey)
	if  == 0 {
		.writeBytes(nullBytes)
		return
	}
	.buf = strconv.AppendFloat(.buf, float64(), 'f', -1, 32)
}