|
- package iterator
-
- type Mapper[TSrc any, TDst any] struct {
- srcIter Iterator[TSrc]
- mapper func(TSrc) (TDst, error)
- }
-
- func (i *Mapper[TSrc, TDst]) MoveNext() (TDst, error) {
- src, err := i.srcIter.MoveNext()
- if err != nil {
- var ret TDst
- return ret, err
- }
-
- return i.mapper(src)
- }
-
- func (i *Mapper[TSrc, TDst]) Close() {
- i.srcIter.Close()
- }
-
- func Map[TSrc any, TDst any](srcIter Iterator[TSrc], mapper func(src TSrc) (TDst, error)) *Mapper[TSrc, TDst] {
- return &Mapper[TSrc, TDst]{
- srcIter: srcIter,
- mapper: mapper,
- }
- }
|