Gibheer
6ea4d2c82d
lib/pq is out of maintenance for some time now, so switch to the newer more active library. Looks like it finally stabilized after a long time.
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")
|
|
}
|