From 276ab5935873edc05e1882c06fc527a14babd27c Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 30 Jan 2023 14:50:47 -0700 Subject: encoder, reencoder: Distinguish between syntax errors and I/O errors --- encode.go | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'encode.go') diff --git a/encode.go b/encode.go index b6541cd..d39c862 100644 --- a/encode.go +++ b/encode.go @@ -83,6 +83,12 @@ func (enc *Encoder) Encode(obj any) (err error) { enc.w.par.Reset() } if err := encode(enc.w, reflect.ValueOf(obj), enc.w.BackslashEscape, false, 0, map[any]struct{}{}); err != nil { + if rwe, ok := err.(*ReEncodeWriteError); ok { + err = &EncodeWriteError{ + Err: rwe.Err, + Offset: rwe.Offset, + } + } return err } if enc.isRoot { -- cgit v1.2.3-2-g168b