diff options
Diffstat (limited to 'modules/util')
-rw-r--r-- | modules/util/slice.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/modules/util/slice.go b/modules/util/slice.go new file mode 100644 index 0000000000..552f5b866a --- /dev/null +++ b/modules/util/slice.go @@ -0,0 +1,18 @@ +// Copyright 2022 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package util + +// RemoveIDFromList removes the given ID from the slice, if found. +// It does not preserve order, and assumes the ID is unique. +func RemoveIDFromList(list []int64, id int64) ([]int64, bool) { + n := len(list) - 1 + for i, item := range list { + if item == id { + list[i] = list[n] + return list[:n], true + } + } + return list, false +} |