Documentation
¶
Overview ¶
Package codegen emits reflection-free apply functions from intermediate minitoml.Document keys.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Field ¶
type Field struct {
// GoName is the exported Go field name.
GoName string
// Key is the relative TOML/intermediate key segment under the parent prefix.
Key string
// Kind is the field type.
Kind FieldKind
// Nested holds child fields when Kind is FieldStruct or FieldStructSlice.
// For FieldStructSlice they are the element struct's fields.
Nested []Field
// ElemType is the element struct's Go type name when Kind is FieldStructSlice.
ElemType string
// Default is an optional default used when the key is absent (string form).
Default string
// Opt is an optional CLI name override ("long" or "long,short").
Opt string
// Env is an optional exact environment variable override, or "-" to disable it.
Env string
// Help is optional CLI/scaffold help text.
Help string
// Arg is a subcommand-only positional role: required, optional, or *.
Arg string
// DependsOn is the absolute parent config key from a dependon tag. When the
// parent reads as empty, this field is omitted from provenance output.
DependsOn string
// Falsy is the enum choice from a falsy tag that means "off" for this field.
// An empty value resolves to it, and it hides fields that depend on this one.
Falsy string
}
Field describes one struct field for intermediate-form apply generation.
type FieldKind ¶
type FieldKind int
FieldKind is the Go field kind supported by the generator.
const ( // FieldString is a string field. FieldString FieldKind = iota // FieldBool is a bool field. FieldBool // FieldInt is an int field. FieldInt // FieldDuration is a time.Duration field parsed from a Go duration string. FieldDuration // FieldStringSlice is a []string field. FieldStringSlice // FieldStruct is a nested struct field. FieldStruct // FieldStructSlice is a slice of structs read from an array of tables. FieldStructSlice )
type Spec ¶
type Spec struct {
// TypeName is the Go struct type name (e.g. WebServiceConfig).
TypeName string
// Prefix is the Bind prefix / top-level TOML table (e.g. webservice).
Prefix string
// Fields are the struct fields.
Fields []Field
}
Spec describes one Bind-style config struct and its prefix table name.
func WebServiceFixtureSpec ¶
func WebServiceFixtureSpec() Spec
WebServiceFixtureSpec returns the representative Bind-style fixture used by tests and committed gen code.
Click to show internal directories.
Click to hide internal directories.