Discover Packages
github.com/oam-dev/kubevela
references
cuegen
package
Version:
v1.9.0
Opens a new window with list of versions in this module.
Published: Jun 15, 2023
License: Apache-2.0
Opens a new window with license information.
Imports: 13
Opens a new window with list of imports.
Imported by: 0
Opens a new window with list of known importers.
README
README
¶
CUE Generator
Auto generation of CUE schema and docs from Go struct
Type Conversion
All comments will be copied to CUE schema
Basic Types
Go Type
CUE Type
int
int
int8
int8
int16
int16
int32
int32
int64
int64
uint
uint
uint8
uint8
uint16
uint16
uint32
uint32
uint64
uint64
float32
float32
float64
float64
string
string
bool
bool
nil
null
byte
uint8
uintptr
uint64
[]byte
bytes
interface{}/any
_
Map Type
CUE only supports map[string]T
type, which is converted to [string]: T
in CUE schema
All map[string]any/map[string]interface{}
are converted to {...}
in CUE schema
Struct Type
Fields will be expanded recursively in CUE schema
All unexported fields will be ignored
Do not support recursive struct type, which will cause infinite loop
json
Tag:
Fields with json:"FIELD_NAME"
tag will be renamed to FIELD_NAME
in CUE schema, otherwise the field name will be
used
Fields with json:"-"
tag will be ignored in generation
Anonymous fields with json:",inline"
tag will be expanded inlined in CUE schema
Fields with json:",omitempty"
tag will be marked as optional in CUE schema
cue
Tag:
Format: cue:"key1:value1;key2:value2;boolValue1;boolValue2"
Fields with cue:"enum:VALUE1,VALUE2"
tag will be set with enum values VALUE1
and VALUE2
in CUE schema
Fields with cue:"default:VALUE"
tag will be set with default value VALUE
in CUE schema, and VALUE
must be one of
go basic types, including int
, float
, string
, bool
Separators ';'
, ':'
and ','
can be escaped with '\'
, e.g. cue:"default:va\\;lue\\:;enum:e\\;num1,e\\:num2\\,enum3"
will
be parsed as Default: "va;lue:", Enum: []string{"e;num1", "e:num2,enum3"}}
Expand ▾
Collapse ▴
Documentation
¶
Ident returns a new cue identifier with the given name.
CommonFields is a struct that contains common fields for all decls.
Decl is an interface that can build a cueast.Decl.
type Generator struct {
}
Generator generates CUE schema from Go struct.
NewGenerator creates a new generator with given file or package path.
Format formats CUE ast decls with package header and writes to w.
Generate generates CUE schema from Go struct and writes to w.
And it can be called multiple times with different options.
NB: it's not thread-safe.
Package returns internal package struct, which should be read-only.
type Option func(opts *options)
Option is a function that configures generation options
WithNullable will generate null enum for pointer type
WithTypeFilter filters top struct types to be generated, and filter returns true to generate the type, otherwise false
WithTypes appends go types as specified cue types in generation
Example:*k8s.io/apimachinery/pkg/apis/meta/v1/unstructured.Unstructured, TypeEllipsis
Default any types: interface{}, any
Default ellipsis types: map[string]interface{}, map[string]any
Struct is a struct that represents a CUE struct.
Build creates a cueast.Decl from Struct.
Type is a special cue type
const (
TypeAny Type = "any"
TypeEllipsis Type = "ellipsis"
)
Source Files
¶
Directories
¶
generators
Click to show internal directories.
Click to hide internal directories.