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 toFIELD_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 valuesVALUE1
andVALUE2
in CUE schema - Fields with
cue:"default:VALUE"
tag will be set with default valueVALUE
in CUE schema, andVALUE
must be one of go basic types, includingint
,float
,string
,bool
- Separators
';'
,':'
and','
can be escaped with'\'
, e.g.cue:"default:va\\;lue\\:;enum:e\\;num1,e\\:num2\\,enum3"
will be parsed asDefault: "va;lue:", Enum: []string{"e;num1", "e:num2,enum3"}}
Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CommonFields ¶ added in v1.9.0
type CommonFields struct { Expr cueast.Expr Name string Comment *goast.CommentGroup Doc *goast.CommentGroup Pos cuetoken.Pos }
CommonFields is a struct that contains common fields for all decls.
type Generator ¶
type Generator struct {
// contains filtered or unexported fields
}
Generator generates CUE schema from Go struct.
func NewGenerator ¶
NewGenerator creates a new generator with given file or package path.
func (*Generator) Format ¶ added in v1.9.0
Format formats CUE ast decls with package header and writes to w.
type Option ¶ added in v1.9.0
type Option func(opts *options)
Option is a function that configures generation options
func WithNullable ¶ added in v1.9.0
func WithNullable() Option
WithNullable will generate null enum for pointer type
func WithTypeFilter ¶ added in v1.9.0
WithTypeFilter filters top struct types to be generated, and filter returns true to generate the type, otherwise false
type Struct ¶ added in v1.9.0
type Struct struct {
CommonFields
}
Struct is a struct that represents a CUE struct.
Click to show internal directories.
Click to hide internal directories.