fix: use container.Set

This commit is contained in:
Jason Song 2023-01-04 15:59:25 +08:00
parent 5925722501
commit 5d938ebf4e
No known key found for this signature in database
GPG Key ID: 8402EEEE4511A8B5
5 changed files with 23 additions and 38 deletions

View File

@ -7,6 +7,7 @@ import (
"context"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/modules/container"
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/builder"
@ -15,18 +16,14 @@ import (
type ActionJobList []*ActionRunJob
func (jobs ActionJobList) GetRunIDs() []int64 {
runIDsMap := make(map[int64]struct{})
ids := make(container.Set[int64], len(jobs))
for _, j := range jobs {
if j.RunID == 0 {
continue
}
runIDsMap[j.RunID] = struct{}{}
ids.Add(j.RunID)
}
runIDs := make([]int64, 0, len(runIDsMap))
for runID := range runIDsMap {
runIDs = append(runIDs, runID)
}
return runIDs
return ids.Values()
}
func (jobs ActionJobList) LoadRuns(ctx context.Context, withRepo bool) error {

View File

@ -9,6 +9,7 @@ import (
"code.gitea.io/gitea/models/db"
repo_model "code.gitea.io/gitea/models/repo"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/container"
"code.gitea.io/gitea/modules/util"
"xorm.io/builder"
@ -18,27 +19,19 @@ type RunList []*ActionRun
// GetUserIDs returns a slice of user's id
func (runs RunList) GetUserIDs() []int64 {
userIDsMap := make(map[int64]struct{})
ids := make(container.Set[int64], len(runs))
for _, run := range runs {
userIDsMap[run.TriggerUserID] = struct{}{}
ids.Add(run.TriggerUserID)
}
userIDs := make([]int64, 0, len(userIDsMap))
for userID := range userIDsMap {
userIDs = append(userIDs, userID)
}
return userIDs
return ids.Values()
}
func (runs RunList) GetRepoIDs() []int64 {
repoIDsMap := make(map[int64]struct{})
ids := make(container.Set[int64], len(runs))
for _, run := range runs {
repoIDsMap[run.RepoID] = struct{}{}
ids.Add(run.RepoID)
}
repoIDs := make([]int64, 0, len(repoIDsMap))
for repoID := range repoIDsMap {
repoIDs = append(repoIDs, repoID)
}
return repoIDs
return ids.Values()
}
func (runs RunList) LoadTriggerUser(ctx context.Context) error {

View File

@ -16,18 +16,14 @@ type RunnerList []*ActionRunner
// GetUserIDs returns a slice of user's id
func (runners RunnerList) GetUserIDs() []int64 {
userIDsMap := make(map[int64]struct{})
ids := make(container.Set[int64], len(runners))
for _, runner := range runners {
if runner.OwnerID == 0 {
continue
}
userIDsMap[runner.OwnerID] = struct{}{}
ids.Add(runner.OwnerID)
}
userIDs := make([]int64, 0, len(userIDsMap))
for userID := range userIDsMap {
userIDs = append(userIDs, userID)
}
return userIDs
return ids.Values()
}
func (runners RunnerList) LoadOwners(ctx context.Context) error {

View File

@ -12,6 +12,7 @@ import (
auth_model "code.gitea.io/gitea/models/auth"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/modules/container"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/timeutil"
@ -496,12 +497,13 @@ func StopTask(ctx context.Context, taskID int64, status Status) error {
}
func isSubset(set, subset []string) bool {
m := make(map[string]struct{}, len(set))
m := make(container.Set[string], len(set))
for _, v := range set {
m[v] = struct{}{}
m.Add(v)
}
for _, v := range subset {
if _, ok := m[v]; !ok {
if m.Contains(v) {
return false
}
}

View File

@ -7,6 +7,7 @@ import (
"context"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/modules/container"
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/builder"
@ -15,18 +16,14 @@ import (
type TaskList []*ActionTask
func (tasks TaskList) GetJobIDs() []int64 {
jobIDsMap := make(map[int64]struct{})
ids := make(container.Set[int64], len(tasks))
for _, t := range tasks {
if t.JobID == 0 {
continue
}
jobIDsMap[t.JobID] = struct{}{}
ids.Add(t.JobID)
}
jobIDs := make([]int64, 0, len(jobIDsMap))
for jobID := range jobIDsMap {
jobIDs = append(jobIDs, jobID)
}
return jobIDs
return ids.Values()
}
func (tasks TaskList) LoadJobs(ctx context.Context) error {