diff --git a/internal/cmd/base/labels.go b/internal/cmd/base/labels.go index 3b487690..78094e54 100644 --- a/internal/cmd/base/labels.go +++ b/internal/cmd/base/labels.go @@ -14,20 +14,20 @@ import ( ) // LabelCmds allows defining commands for adding labels to resources. -type LabelCmds struct { +type LabelCmds[T any] struct { ResourceNameSingular string ShortDescriptionAdd string ShortDescriptionRemove string NameSuggestions func(client hcapi2.Client) func() []string LabelKeySuggestions func(client hcapi2.Client) func(idOrName string) []string - Fetch func(s state.State, idOrName string) (any, error) - SetLabels func(s state.State, resource any, labels map[string]string) error - GetLabels func(resource any) map[string]string - GetIDOrName func(resource any) string + Fetch func(s state.State, idOrName string) (T, error) + SetLabels func(s state.State, resource T, labels map[string]string) error + GetLabels func(resource T) map[string]string + GetIDOrName func(resource T) string } // AddCobraCommand creates a command that can be registered with cobra. -func (lc *LabelCmds) AddCobraCommand(s state.State) *cobra.Command { +func (lc *LabelCmds[T]) AddCobraCommand(s state.State) *cobra.Command { cmd := &cobra.Command{ Use: fmt.Sprintf("add-label [--overwrite] <%s>