package gojay
func (enc *Encoder ) EncodeString (s string ) error {
if enc .isPooled == 1 {
panic (InvalidUsagePooledEncoderError ("Invalid usage of pooled encoder" ))
}
_, _ = enc .encodeString (s )
_ , err := enc .Write ()
if err != nil {
enc .err = err
return err
}
return nil
}
func (enc *Encoder ) encodeString (v string ) ([]byte , error ) {
enc .writeByte ('"' )
enc .writeStringEscape (v )
enc .writeByte ('"' )
return enc .buf , nil
}
func (enc *Encoder ) AppendString (v string ) {
enc .grow (len (v ) + 2 )
enc .writeByte ('"' )
enc .writeStringEscape (v )
enc .writeByte ('"' )
}
func (enc *Encoder ) AddString (v string ) {
enc .String (v )
}
func (enc *Encoder ) AddStringOmitEmpty (v string ) {
enc .StringOmitEmpty (v )
}
func (enc *Encoder ) AddStringNullEmpty (v string ) {
enc .StringNullEmpty (v )
}
func (enc *Encoder ) AddStringKey (key , v string ) {
enc .StringKey (key , v )
}
func (enc *Encoder ) AddStringKeyOmitEmpty (key , v string ) {
enc .StringKeyOmitEmpty (key , v )
}
func (enc *Encoder ) AddStringKeyNullEmpty (key , v string ) {
enc .StringKeyNullEmpty (key , v )
}
func (enc *Encoder ) String (v string ) {
enc .grow (len (v ) + 4 )
r := enc .getPreviousRune ()
if r != '[' {
enc .writeTwoBytes (',' , '"' )
} else {
enc .writeByte ('"' )
}
enc .writeStringEscape (v )
enc .writeByte ('"' )
}
func (enc *Encoder ) StringOmitEmpty (v string ) {
if v == "" {
return
}
r := enc .getPreviousRune ()
if r != '[' {
enc .writeTwoBytes (',' , '"' )
} else {
enc .writeByte ('"' )
}
enc .writeStringEscape (v )
enc .writeByte ('"' )
}
func (enc *Encoder ) StringNullEmpty (v string ) {
r := enc .getPreviousRune ()
if v == "" {
if r != '[' {
enc .writeByte (',' )
enc .writeBytes (nullBytes )
} else {
enc .writeBytes (nullBytes )
}
return
}
if r != '[' {
enc .writeTwoBytes (',' , '"' )
} else {
enc .writeByte ('"' )
}
enc .writeStringEscape (v )
enc .writeByte ('"' )
}
func (enc *Encoder ) StringKey (key , v string ) {
if enc .hasKeys {
if !enc .keyExists (key ) {
return
}
}
enc .grow (len (key ) + len (v ) + 5 )
r := enc .getPreviousRune ()
if r != '{' {
enc .writeTwoBytes (',' , '"' )
} else {
enc .writeByte ('"' )
}
enc .writeStringEscape (key )
enc .writeBytes (objKeyStr )
enc .writeStringEscape (v )
enc .writeByte ('"' )
}
func (enc *Encoder ) StringKeyOmitEmpty (key , v string ) {
if enc .hasKeys {
if !enc .keyExists (key ) {
return
}
}
if v == "" {
return
}
enc .grow (len (key ) + len (v ) + 5 )
r := enc .getPreviousRune ()
if r != '{' {
enc .writeTwoBytes (',' , '"' )
} else {
enc .writeByte ('"' )
}
enc .writeStringEscape (key )
enc .writeBytes (objKeyStr )
enc .writeStringEscape (v )
enc .writeByte ('"' )
}
func (enc *Encoder ) StringKeyNullEmpty (key , v string ) {
if enc .hasKeys {
if !enc .keyExists (key ) {
return
}
}
enc .grow (len (key ) + len (v ) + 5 )
r := enc .getPreviousRune ()
if r != '{' {
enc .writeTwoBytes (',' , '"' )
} else {
enc .writeByte ('"' )
}
enc .writeStringEscape (key )
enc .writeBytes (objKey )
if v == "" {
enc .writeBytes (nullBytes )
return
}
enc .writeByte ('"' )
enc .writeStringEscape (v )
enc .writeByte ('"' )
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .