package gojay
func (enc *Encoder ) EncodeArray (v MarshalerJSONArray ) error {
if enc .isPooled == 1 {
panic (InvalidUsagePooledEncoderError ("Invalid usage of pooled encoder" ))
}
_, _ = enc .encodeArray (v )
_ , err := enc .Write ()
if err != nil {
enc .err = err
return err
}
return nil
}
func (enc *Encoder ) encodeArray (v MarshalerJSONArray ) ([]byte , error ) {
enc .grow (200 )
enc .writeByte ('[' )
v .MarshalJSONArray (enc )
enc .writeByte (']' )
return enc .buf , enc .err
}
func (enc *Encoder ) AddArray (v MarshalerJSONArray ) {
enc .Array (v )
}
func (enc *Encoder ) AddArrayOmitEmpty (v MarshalerJSONArray ) {
enc .ArrayOmitEmpty (v )
}
func (enc *Encoder ) AddArrayNullEmpty (v MarshalerJSONArray ) {
enc .ArrayNullEmpty (v )
}
func (enc *Encoder ) AddArrayKey (key string , v MarshalerJSONArray ) {
enc .ArrayKey (key , v )
}
func (enc *Encoder ) AddArrayKeyOmitEmpty (key string , v MarshalerJSONArray ) {
enc .ArrayKeyOmitEmpty (key , v )
}
func (enc *Encoder ) AddArrayKeyNullEmpty (key string , v MarshalerJSONArray ) {
enc .ArrayKeyNullEmpty (key , v )
}
func (enc *Encoder ) Array (v MarshalerJSONArray ) {
if v .IsNil () {
enc .grow (3 )
r := enc .getPreviousRune ()
if r != '[' {
enc .writeByte (',' )
}
enc .writeByte ('[' )
enc .writeByte (']' )
return
}
enc .grow (100 )
r := enc .getPreviousRune ()
if r != '[' {
enc .writeByte (',' )
}
enc .writeByte ('[' )
v .MarshalJSONArray (enc )
enc .writeByte (']' )
}
func (enc *Encoder ) ArrayOmitEmpty (v MarshalerJSONArray ) {
if v .IsNil () {
return
}
enc .grow (4 )
r := enc .getPreviousRune ()
if r != '[' {
enc .writeByte (',' )
}
enc .writeByte ('[' )
v .MarshalJSONArray (enc )
enc .writeByte (']' )
}
func (enc *Encoder ) ArrayNullEmpty (v MarshalerJSONArray ) {
enc .grow (4 )
r := enc .getPreviousRune ()
if r != '[' {
enc .writeByte (',' )
}
if v .IsNil () {
enc .writeBytes (nullBytes )
return
}
enc .writeByte ('[' )
v .MarshalJSONArray (enc )
enc .writeByte (']' )
}
func (enc *Encoder ) ArrayKey (key string , v MarshalerJSONArray ) {
if enc .hasKeys {
if !enc .keyExists (key ) {
return
}
}
if v .IsNil () {
enc .grow (2 + len (key ))
r := enc .getPreviousRune ()
if r != '{' {
enc .writeByte (',' )
}
enc .writeByte ('"' )
enc .writeStringEscape (key )
enc .writeBytes (objKeyArr )
enc .writeByte (']' )
return
}
enc .grow (5 + len (key ))
r := enc .getPreviousRune ()
if r != '{' {
enc .writeByte (',' )
}
enc .writeByte ('"' )
enc .writeStringEscape (key )
enc .writeBytes (objKeyArr )
v .MarshalJSONArray (enc )
enc .writeByte (']' )
}
func (enc *Encoder ) ArrayKeyOmitEmpty (key string , v MarshalerJSONArray ) {
if enc .hasKeys {
if !enc .keyExists (key ) {
return
}
}
if v .IsNil () {
return
}
enc .grow (5 + len (key ))
r := enc .getPreviousRune ()
if r != '{' {
enc .writeByte (',' )
}
enc .writeByte ('"' )
enc .writeStringEscape (key )
enc .writeBytes (objKeyArr )
v .MarshalJSONArray (enc )
enc .writeByte (']' )
}
func (enc *Encoder ) ArrayKeyNullEmpty (key string , v MarshalerJSONArray ) {
if enc .hasKeys {
if !enc .keyExists (key ) {
return
}
}
enc .grow (5 + len (key ))
r := enc .getPreviousRune ()
if r != '{' {
enc .writeByte (',' )
}
if v .IsNil () {
enc .writeBytes (nullBytes )
return
}
enc .writeByte ('"' )
enc .writeStringEscape (key )
enc .writeBytes (objKeyArr )
v .MarshalJSONArray (enc )
enc .writeByte (']' )
}
type EncodeArrayFunc func (*Encoder )
func (f EncodeArrayFunc ) MarshalJSONArray (enc *Encoder ) {
f (enc )
}
func (f EncodeArrayFunc ) IsNil () bool {
return f == nil
}
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 .