0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2024-12-22 23:33:15 -05:00
forgejo/modules/container
oliverpool 45d96b4765
Add container.FilterSlice function (gitea#30339) (skip using it)
Many places have the following logic:
```go
func (jobs ActionJobList) GetRunIDs() []int64 {
	ids := make(container.Set[int64], len(jobs))
	for _, j := range jobs {
		if j.RunID == 0 {
			continue
		}
		ids.Add(j.RunID)
	}
	return ids.Values()
}
```

this introduces a `container.FilterMapUnique` function, which reduces
the code above to:
```go
func (jobs ActionJobList) GetRunIDs() []int64 {
	return container.FilterMapUnique(jobs, func(j *ActionRunJob) (int64, bool) {
		return j.RunID, j.RunID != 0
	})
}
```
Conflicts:
models/issues/comment_list.go due to premature refactor in #3116

(cherry picked from commit 525accfae6)

Conflicts:
	models/issues/comment_list.go
  only cherry-pick the container.FilterSlice function, for the sake of backporting
2024-08-18 06:55:15 +02:00
..
filter.go Add container.FilterSlice function (gitea#30339) (skip using it) 2024-08-18 06:55:15 +02:00
filter_test.go Add container.FilterSlice function (gitea#30339) (skip using it) 2024-08-18 06:55:15 +02:00
set.go
set_test.go