summaryrefslogtreecommitdiff
path: root/reencode.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-02-14 11:44:36 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2023-02-16 21:19:46 -0700
commit851452243879498117cd7e71ac12856af44657cb (patch)
tree8542d06063bd773031c8550271f945cab624b68d /reencode.go
parenta6cd78ec94f76feba180fa75e942bb5cdeae115f (diff)
reencode: Don't have the ReEncoderConfig member be public
Diffstat (limited to 'reencode.go')
-rw-r--r--reencode.go38
1 files changed, 19 insertions, 19 deletions
diff --git a/reencode.go b/reencode.go
index f100275..32796f6 100644
--- a/reencode.go
+++ b/reencode.go
@@ -72,9 +72,9 @@ type ReEncoderConfig struct {
// bufio.Writer.
func NewReEncoder(out io.Writer, cfg ReEncoderConfig) *ReEncoder {
return &ReEncoder{
- ReEncoderConfig: cfg,
- out: fastio.NewAllWriter(out),
- specu: new(speculation),
+ cfg: cfg,
+ out: fastio.NewAllWriter(out),
+ specu: new(speculation),
}
}
@@ -87,7 +87,7 @@ func NewReEncoder(out io.Writer, cfg ReEncoderConfig) *ReEncoder {
//
// The memory use of a ReEncoder is O(CompactIfUnder+depth).
type ReEncoder struct {
- ReEncoderConfig
+ cfg ReEncoderConfig
out fastio.AllWriter
// state: .Write's and .WriteString's utf8-decoding buffer
@@ -239,7 +239,7 @@ func (enc *ReEncoder) Close() error {
}
return enc.err
}
- if enc.AllowMultipleValues {
+ if enc.cfg.AllowMultipleValues {
enc.par.Reset()
}
}
@@ -283,7 +283,7 @@ rehandle:
return enc.written, enc.err
}
if t == jsonparse.RuneTypeEOF {
- if enc.AllowMultipleValues && len(enc.barriers) == 0 {
+ if enc.cfg.AllowMultipleValues && len(enc.barriers) == 0 {
enc.par.Reset()
goto rehandle
} else {
@@ -328,7 +328,7 @@ func (enc *ReEncoder) stackSize() int {
}
func (enc *ReEncoder) handleRune(c rune, t jsonparse.RuneType, stackSize int) error {
- if enc.CompactIfUnder == 0 || enc.Compact || enc.Indent == "" {
+ if enc.cfg.CompactIfUnder == 0 || enc.cfg.Compact || enc.cfg.Indent == "" {
return enc.handleRuneNoSpeculation(c, t)
}
@@ -342,10 +342,10 @@ func (enc *ReEncoder) handleRune(c rune, t jsonparse.RuneType, stackSize int) er
enc.specu.speculating = true
enc.specu.endWhenStackSize = stackSize - 1
enc.specu.fmt = ReEncoder{
- ReEncoderConfig: enc.ReEncoderConfig,
- out: &enc.specu.compact,
+ cfg: enc.cfg,
+ out: &enc.specu.compact,
}
- enc.specu.fmt.Compact = true
+ enc.specu.fmt.cfg.Compact = true
enc.specu.buf = append(enc.specu.buf, inputTuple{
c: c,
t: t,
@@ -369,7 +369,7 @@ func (enc *ReEncoder) handleRune(c rune, t jsonparse.RuneType, stackSize int) er
return err
}
switch {
- case enc.specu.compact.Len() >= enc.CompactIfUnder: // stop speculating; use indent
+ case enc.specu.compact.Len() >= enc.cfg.CompactIfUnder: // stop speculating; use indent
buf := append([]inputTuple(nil), enc.specu.buf...)
enc.specu.Reset()
if err := enc.handleRuneMain(buf[0].c, buf[0].t); err != nil {
@@ -414,7 +414,7 @@ func (enc *ReEncoder) handleRunePre(c rune, t jsonparse.RuneType) (error, bool)
if err := enc.emitByte('\n'); err != nil {
return err, false
}
- case enc.Indent != "" && !enc.Compact:
+ case enc.cfg.Indent != "" && !enc.cfg.Compact:
if err := enc.emitByte('\n'); err != nil {
return err, false
}
@@ -458,11 +458,11 @@ func (enc *ReEncoder) handleRunePre(c rune, t jsonparse.RuneType) (error, bool)
// whitespace
switch {
- case enc.Compact:
+ case enc.cfg.Compact:
if t == jsonparse.RuneTypeSpace {
return nil, false
}
- case enc.Indent != "":
+ case enc.cfg.Indent != "":
switch t {
case jsonparse.RuneTypeSpace:
// let us manage whitespace, don't pass it through
@@ -500,7 +500,7 @@ func (enc *ReEncoder) handleRunePre(c rune, t jsonparse.RuneType) (error, bool)
// handleRuneMain handles the new rune itself, not buffered things.
func (enc *ReEncoder) handleRuneMain(c rune, t jsonparse.RuneType) error {
- escaper := enc.BackslashEscape
+ escaper := enc.cfg.BackslashEscape
if escaper == nil {
escaper = EscapeDefault
}
@@ -549,7 +549,7 @@ func (enc *ReEncoder) handleRuneMain(c rune, t jsonparse.RuneType) error {
case jsonparse.RuneTypeEOF: // EOF implied by the start of the next top-level value
enc.wasNumber = enc.lastNonSpace.IsNumber()
switch {
- case enc.ForceTrailingNewlines && len(enc.barriers) == 0:
+ case enc.cfg.ForceTrailingNewlines && len(enc.barriers) == 0:
t = jsonparse.RuneTypeError // enc.lastNonSpace : an NL isn't needed (we already printed one)
err = enc.emitByte('\n')
default:
@@ -585,13 +585,13 @@ func (enc *ReEncoder) emitNlIndent() error {
if err := enc.emitByte('\n'); err != nil {
return err
}
- if enc.Prefix != "" {
- if err := enc.emit(enc.out.WriteString(enc.Prefix)); err != nil {
+ if enc.cfg.Prefix != "" {
+ if err := enc.emit(enc.out.WriteString(enc.cfg.Prefix)); err != nil {
return err
}
}
for i := 0; i < enc.curIndent; i++ {
- if err := enc.emit(enc.out.WriteString(enc.Indent)); err != nil {
+ if err := enc.emit(enc.out.WriteString(enc.cfg.Indent)); err != nil {
return err
}
}