From 588061e3e0af8ffab3bb4aed64df1188a1f48019 Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Wed, 11 Dec 2024 20:57:59 -0500 Subject: [PATCH] providers/slice: Remove because sprig has lists --- providers/slice/slice.go | 54 ---------------------------------------- 1 file changed, 54 deletions(-) delete mode 100644 providers/slice/slice.go diff --git a/providers/slice/slice.go b/providers/slice/slice.go deleted file mode 100644 index 23256ac..0000000 --- a/providers/slice/slice.go +++ /dev/null @@ -1,54 +0,0 @@ -package slice - -import "reflect" -import "html/template" -import "git.tebibyte.media/sashakoshka/step" - -const hiddenPrefix = "." - -var _ step.FuncProvider = new(Provider) - -// Provider provides slice functions. -type Provider struct { - -} - -// Package fulfills the step.Provider interface. -func (this *Provider) Package () string { - return "slice" -} - -// FuncMap fulfills the step.FuncProvider interface. -func (this *Provider) FuncMap () template.FuncMap { - return template.FuncMap { - "list": funcList, - "append": funcAppend, - } -} - -func funcList (items ...reflect.Value) (reflect.Value, error) { - if len(items) == 0 { return reflect.Value { }, nil } - ty := items[0].Type() - list := reflect.MakeSlice(ty, len(items), len(items)) - for index, item := range items { - if item.Type().AssignableTo(ty) { - return reflect.Value { }, step.ErrTypeMismatch - } - dest := list.Index(index) - dest.Set(item) - } - return list, nil -} - -func funcAppend (slice reflect.Value, items ...reflect.Value) (reflect.Value, error) { - if slice.Type().Kind() != reflect.Slice { - return reflect.Value { }, step.ErrTypeMismatch - } - if len(items) == 0 { return reflect.Value { }, nil } - ty := slice.Type().Elem() - end := slice.Len() + len(items) - list := reflect.MakeSlice(ty, end, end) - boundary := reflect.Copy(list, slice) - reflect.Copy(list.Slice(boundary, end), reflect.ValueOf(items)) - return list, nil -}