Skip to content

Commit 83412b9

Browse files
authored
Merge pull request #17 from tiendc/fix/allow-return-final-decode-error
Return final decode error when finish
2 parents 33dafc1 + 90f3c75 commit 83412b9

File tree

3 files changed

+6
-5
lines changed

3 files changed

+6
-5
lines changed

decoder.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,9 @@ func (d *Decoder) DecodeOne(v interface{}) error {
256256
return err
257257
}
258258

259-
func (d *Decoder) Finish() *DecodeResult {
259+
func (d *Decoder) Finish() (*DecodeResult, error) {
260260
d.finished = true
261-
return d.result
261+
return d.result, d.err
262262
}
263263

264264
func (d *Decoder) prepareDecode(v reflect.Value) error {

decoder_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1165,7 +1165,7 @@ func Test_DecodeOne(t *testing.T) {
11651165
err := d.DecodeOne(&v1)
11661166
assert.Nil(t, err)
11671167
assert.Equal(t, Item{Col1: 1, Col2: 2.123}, v1)
1168-
_ = d.Finish()
1168+
_, _ = d.Finish()
11691169
err = d.DecodeOne(&v2)
11701170
assert.ErrorIs(t, err, ErrFinished)
11711171
})

docs/DECODING.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -379,8 +379,9 @@ tom,26,new york`)
379379
for decoder.DecodeOne(&student) != csvlib.ErrFinished {
380380
fmt.Printf("%+v\n", student)
381381
}
382-
383-
fmt.Printf("%+v\n", *decoder.Finish())
382+
383+
result, err := decoder.Finish() // err is *csvlib.Errors if it's not nil
384+
fmt.Printf("%+v\n", *result)
384385

385386
// Output:
386387
// {Name:jerry Age:20 Address:}

0 commit comments

Comments
 (0)