Skip to content

Commit 49a422c

Browse files
committed
updated to allow for nil entities and those are filtered from result but order is preserved
1 parent 4932f21 commit 49a422c

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

sample/sample_transform.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ type Result struct {
4646

4747
func processEntitiesConcurrently(entities []*egdm.Entity, concurrency int, handler func(entity *egdm.Entity) (*egdm.Entity, error)) ([]*egdm.Entity, error) {
4848
var wg sync.WaitGroup
49-
results := make([]*egdm.Entity, len(entities))
49+
results := make([]Result, len(entities))
5050
resultsChan := make(chan Result, len(entities))
5151

5252
// Number of goroutines to use
@@ -78,10 +78,18 @@ func processEntitiesConcurrently(entities []*egdm.Entity, concurrency int, handl
7878
if result.Error != nil {
7979
return nil, result.Error
8080
}
81-
results[result.Index] = result.Entity
81+
results[result.Index] = result
8282
}
8383

84-
return results, nil
84+
// filter out non nil
85+
finalResults := make([]*egdm.Entity, 0)
86+
for _, result := range results {
87+
if result.Entity != nil {
88+
finalResults = append(finalResults, result.Entity)
89+
}
90+
}
91+
92+
return finalResults, nil
8593
}
8694

8795
func processEntity(entity *egdm.Entity) (*egdm.Entity, error) {

0 commit comments

Comments
 (0)