Encode is documented at https://golang.org/pkg/encoding/json/#Encoder.Encode
(v any)
| 504 | |
| 505 | // Encode is documented at https://golang.org/pkg/encoding/json/#Encoder.Encode |
| 506 | func (enc *Encoder) Encode(v any) error { |
| 507 | if enc.err != nil { |
| 508 | return enc.err |
| 509 | } |
| 510 | |
| 511 | var err error |
| 512 | buf := encoderBufferPool.Get().(*encoderBuffer) |
| 513 | |
| 514 | buf.data, err = Append(buf.data[:0], v, enc.flags) |
| 515 | if err != nil { |
| 516 | encoderBufferPool.Put(buf) |
| 517 | return err |
| 518 | } |
| 519 | |
| 520 | if (enc.flags & appendNewline) != 0 { |
| 521 | buf.data = append(buf.data, '\n') |
| 522 | } |
| 523 | b := buf.data |
| 524 | |
| 525 | if enc.prefix != "" || enc.indent != "" { |
| 526 | if enc.buffer == nil { |
| 527 | enc.buffer = new(bytes.Buffer) |
| 528 | enc.buffer.Grow(2 * len(buf.data)) |
| 529 | } else { |
| 530 | enc.buffer.Reset() |
| 531 | } |
| 532 | Indent(enc.buffer, buf.data, enc.prefix, enc.indent) |
| 533 | b = enc.buffer.Bytes() |
| 534 | } |
| 535 | |
| 536 | if _, err := enc.writer.Write(b); err != nil { |
| 537 | enc.err = err |
| 538 | } |
| 539 | |
| 540 | encoderBufferPool.Put(buf) |
| 541 | return err |
| 542 | } |
| 543 | |
| 544 | // SetEscapeHTML is documented at https://golang.org/pkg/encoding/json/#Encoder.SetEscapeHTML |
| 545 | func (enc *Encoder) SetEscapeHTML(on bool) { |