From 3e1febab564abc67011e70ba8ab87e31e2aecaac Mon Sep 17 00:00:00 2001 From: mountain Date: Sat, 2 Dec 2023 20:30:43 +0900 Subject: [PATCH] =?UTF-8?q?ShrinkSliceAt=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- misc.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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