Add scoped PromptKit flag aliases

This commit is contained in:
2026-11-07 04:27:28 +00:00
parent 644e6c365b
commit 0183022a28
13 changed files with 237 additions and 38 deletions

View File

@@ -17,23 +17,23 @@ type namespaceInput struct {
prompt, profile, backend commandkit.Supplied[string]
}
func namespaceFlags[I any](destination func(*I) *namespaceInput, kinds ...string) []commandkit.Flag[I] {
flags := make([]commandkit.Flag[I], 0, len(kinds))
func namespaceFlags[I any](destination func(*I) *namespaceInput, kinds ...string) []requestBinding[I] {
flags := make([]requestBinding[I], 0, len(kinds))
for _, kind := range kinds {
var meta commandkit.FlagMeta
var definition requestFlagDefinition
var field func(*namespaceInput) *commandkit.Supplied[string]
switch kind {
case "prompt":
meta = namespaceFlagDefinitions.prompt.meta
definition = namespaceFlagDefinitions.prompt
field = func(input *namespaceInput) *commandkit.Supplied[string] { return &input.prompt }
case "profile":
meta = namespaceFlagDefinitions.profile.meta
definition = namespaceFlagDefinitions.profile
field = func(input *namespaceInput) *commandkit.Supplied[string] { return &input.profile }
case "backend":
meta = namespaceFlagDefinitions.backend.meta
definition = namespaceFlagDefinitions.backend
field = func(input *namespaceInput) *commandkit.Supplied[string] { return &input.backend }
}
flags = append(flags, commandkit.ValueFlag(meta, (*string)(nil), parseDefinitionString, func(input *I, value commandkit.Supplied[string]) { *field(destination(input)) = value }))
flags = append(flags, requestBinding[I]{commandkit.ValueFlag(definition.meta, (*string)(nil), parseDefinitionString, func(input *I, value commandkit.Supplied[string]) { *field(destination(input)) = value }), definition})
}
return flags
}