What is the best way to handle errors with iterators? How to handle error when we have some object and some type paginates data (e.g. database/sql.Rows or https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/s3#ListObjectsV2Paginator)? I found three, but which should be preferable or maybe I've missed some?
```go type Object smth.Smth type Paginator interface { GetNext(ctx) ([]Object, error) // func doing heavy request over internet HaveNext() bool } ``` ```go func Iter(ctx, data) iter.Seq2[Object, error] for obj, err := Iter(...) { if err != nil { return err } // do smth with Object } ``` ```go func IterWithErr(ctx, data, err *error) iter.Seq[Object] var err error for obj := IterWithErr(..., &err) { // do smth with Object } if err != nil { return err } ``` ```go func IterOverIter(ctx, data) iter.Seq2[iter.Seq[Object], error] for page, err := IterOverIter(...) { if err != nil { return err } for obj := page(...) { // do smth with Object } } ``` -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/2baf7784-b900-46d5-ae8d-f674713ba41bn%40googlegroups.com.