diff --git a/misc.go b/misc.go index 8b50fce..faa5340 100644 --- a/misc.go +++ b/misc.go @@ -104,6 +104,19 @@ func SerializeInterface(w io.Writer, val interface{}) (err error) { return } +func ShrinkSliceAt[T any](in []T, from int) []T { + if len(in) == 0 { + return in + } + + cursor := from + for i := from + 1; i < len(in); i++ { + in[cursor] = in[i] + cursor++ + } + return in[:len(in)-1] +} + func ShrinkSlice[T any](in []T, compare func(elem T) bool) []T { if len(in) == 0 { return in