code.dwrz.net

Go monorepo.
Log | Files | Refs

encoder.go (594B)


      1 package json
      2 
      3 import (
      4 	"bytes"
      5 )
      6 
      7 // Encoder is JSON encoder that supports construction of JSON values
      8 // using methods.
      9 type Encoder struct {
     10 	w *bytes.Buffer
     11 	Value
     12 }
     13 
     14 // NewEncoder returns a new JSON encoder
     15 func NewEncoder() *Encoder {
     16 	writer := bytes.NewBuffer(nil)
     17 	scratch := make([]byte, 64)
     18 
     19 	return &Encoder{w: writer, Value: newValue(writer, &scratch)}
     20 }
     21 
     22 // String returns the String output of the JSON encoder
     23 func (e Encoder) String() string {
     24 	return e.w.String()
     25 }
     26 
     27 // Bytes returns the []byte slice of the JSON encoder
     28 func (e Encoder) Bytes() []byte {
     29 	return e.w.Bytes()
     30 }