package genflags

import "github.com/urfave/cli/v2/internal/genflags"

Index

Variables

var (
	//go:embed generated.gotmpl
	TemplateString string

	//go:embed generated_test.gotmpl
	TestTemplateString string
)

Functions

func TypeName

func TypeName(goType string, fc *FlagTypeConfig) string

Types

type FlagStructField

type FlagStructField struct {
	Name string
	Type string
}

type FlagType

type FlagType struct {
	GoType string
	Config *FlagTypeConfig
}

func (*FlagType) GenerateFlagInterface

func (ft *FlagType) GenerateFlagInterface() bool

func (*FlagType) GenerateFmtStringerInterface

func (ft *FlagType) GenerateFmtStringerInterface() bool

func (*FlagType) GenerateRequiredFlagInterface

func (ft *FlagType) GenerateRequiredFlagInterface() bool

func (*FlagType) GenerateVisibleFlagInterface

func (ft *FlagType) GenerateVisibleFlagInterface() bool

func (*FlagType) StructFields

func (ft *FlagType) StructFields() []*FlagStructField

func (*FlagType) TypeName

func (ft *FlagType) TypeName() string

func (*FlagType) ValuePointer

func (ft *FlagType) ValuePointer() bool

type FlagTypeConfig

type FlagTypeConfig struct {
	SkipInterfaces []string           `yaml:"skip_interfaces"`
	StructFields   []*FlagStructField `yaml:"struct_fields"`
	TypeName       string             `yaml:"type_name"`
	ValuePointer   bool               `yaml:"value_pointer"`
}

type Spec

type Spec struct {
	FlagTypes              map[string]*FlagTypeConfig `yaml:"flag_types"`
	PackageName            string                     `yaml:"package_name"`
	TestPackageName        string                     `yaml:"test_package_name"`
	UrfaveCLINamespace     string                     `yaml:"urfave_cli_namespace"`
	UrfaveCLITestNamespace string                     `yaml:"urfave_cli_test_namespace"`
}

func (*Spec) SortedFlagTypes

func (gfs *Spec) SortedFlagTypes() []*FlagType

Source Files

package.go spec.go

Directories

PathSynopsis
internal/genflags/cmd
internal/genflags/cmd/genflags
Version
v2.11.0
Published
Jul 10, 2022
Platform
linux/amd64
Imports
5 packages
Last checked
7 minutes ago

Tools for package owners.