mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-05-20 09:18:13 +00:00
9b76afc851
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
29 lines
573 B
Go
29 lines
573 B
Go
package puddle
|
|
|
|
type resList[T any] []*Resource[T]
|
|
|
|
func (l *resList[T]) append(val *Resource[T]) { *l = append(*l, val) }
|
|
|
|
func (l *resList[T]) popBack() *Resource[T] {
|
|
idx := len(*l) - 1
|
|
val := (*l)[idx]
|
|
(*l)[idx] = nil // Avoid memory leak
|
|
*l = (*l)[:idx]
|
|
|
|
return val
|
|
}
|
|
|
|
func (l *resList[T]) remove(val *Resource[T]) {
|
|
for i, elem := range *l {
|
|
if elem == val {
|
|
lastIdx := len(*l) - 1
|
|
(*l)[i] = (*l)[lastIdx]
|
|
(*l)[lastIdx] = nil // Avoid memory leak
|
|
(*l) = (*l)[:lastIdx]
|
|
return
|
|
}
|
|
}
|
|
|
|
panic("BUG: removeResource could not find res in slice")
|
|
}
|