return
}
-func DelFront[S ~[]*T, T any](s S, beforeIndex int) S {
- return s[:copy(s, s[beforeIndex+1:])]
+func DelFront[S ~[]*T, T any](s *S, beforeIndex int) {
+ *s = (*s)[:copy(*s, (*s)[beforeIndex+1:])]
}
-func AddFront[S ~[]*T, T any](s S, t *T) S {
- s = append(s, nil)
- s = s[:1+copy(s[1:], s)]
- s[0] = t
- return s
+func AddFront[S ~[]*T, T any](s *S, t *T) {
+ *s = append(*s, nil)
+ *s = (*s)[:1+copy((*s)[1:], *s)]
+ (*s)[0] = t
}
-func DelBack[S ~[]*T, T any](s S, fromIndex int) S {
- return s[:fromIndex]
+func DelBack[S ~[]*T, T any](s *S, fromIndex int) {
+ *s = (*s)[:fromIndex]
}
-func AddBack[S ~[]*T, T any](s S, t *T) S {
- return append(s, t)
+func AddBack[S ~[]*T, T any](s *S, t *T) {
+ *s = append(*s, t)
}
if unsafe.Pointer(&s) != p || cap(s) != 3 || len(s) != 3 {
t.Fatal()
}
- s = DelFront(s, 2)
+ DelFront(&s, 2)
if unsafe.Pointer(&s) != p || cap(s) != 3 || len(s) != 0 {
t.Fatal()
}
- s = AddFront(s, &i)
+ AddFront(&s, &i)
if unsafe.Pointer(&s) != p || cap(s) != 3 || len(s) != 1 {
t.Fatal()
}
- s = AddBack(s, &i)
+ AddBack(&s, &i)
if unsafe.Pointer(&s) != p || cap(s) != 3 || len(s) != 2 {
t.Fatal()
}
- s = DelBack(s, 1)
+ DelBack(&s, 1)
if unsafe.Pointer(&s) != p || cap(s) != 3 || len(s) != 1 {
t.Fatal()
}