Documentation
¶
Index ¶
- type CodeGen
- func (g *CodeGen) Bytes() []byte
- func (g *CodeGen) FormatSource() ([]byte, error)
- func (g *CodeGen) Gen() *CodeGen
- func (g *CodeGen) Print(a ...any) (n int, err error)
- func (g *CodeGen) Printf(format string, a ...any) (n int, err error)
- func (g *CodeGen) Println(a ...any) (n int, err error)
- func (g *CodeGen) Write(b []byte) (n int, err error)
- type ColumnDef
- type EntityDescriptor
- type EntityDescriptorSlice
- type FieldDescriptor
- type ForeignKeyDef
- type ForeignKeyDescriptor
- type GoType
- func BoolType() GoType
- func BytesType() GoType
- func DatatypesDateType() GoType
- func DatatypesJSONType() GoType
- func DecimalType() GoType
- func EnumType() GoType
- func Float32Type() GoType
- func Float64Type() GoType
- func GormDeletedAtType() GoType
- func Int8Type() GoType
- func Int16Type() GoType
- func Int32Type() GoType
- func Int64Type() GoType
- func IntType() GoType
- func JSONRawMessageType() GoType
- func NewGoType(t Type, v any) GoType
- func SQLNullBoolType() GoType
- func SQLNullByteType() GoType
- func SQLNullFloat64Type() GoType
- func SQLNullInt16Type() GoType
- func SQLNullInt32Type() GoType
- func SQLNullInt64Type() GoType
- func SQLNullStringType() GoType
- func SQLNullTimeType() GoType
- func SoftDeleteType() GoType
- func StringType() GoType
- func TimeType() GoType
- func Uint8Type() GoType
- func Uint16Type() GoType
- func Uint32Type() GoType
- func Uint64Type() GoType
- func UintType() GoType
- func (t *GoType) Clone() GoType
- func (t *GoType) Comparable() bool
- func (t *GoType) IsBool() bool
- func (t *GoType) IsFloat() bool
- func (t *GoType) IsInteger() bool
- func (t *GoType) IsNumeric() bool
- func (t *GoType) IsTime() bool
- func (t *GoType) IsValid() bool
- func (t *GoType) String() string
- func (t GoType) WithNewType(tp Type) GoType
- type IndexDef
- type IndexDescriptor
- type Option
- type Schema
- type TableDef
- type Type
- func (t Type) IntoProtoKind() (k protoreflect.Kind, n string)
- func (t Type) IntoRapierType() rapier.Type
- func (t Type) IsBool() bool
- func (t Type) IsFloat() bool
- func (t Type) IsInteger() bool
- func (t Type) IsNumeric() bool
- func (t Type) IsTime() bool
- func (t Type) IsValid() bool
- func (t Type) String() string
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CodeGen ¶
type CodeGen struct {
Entities []*EntityDescriptor
ByName string
Version string
PackageName string // 包名
DisableDocComment bool // 标用文档注释
CustomFieldIdent map[string]map[string]string // 自定义字段Ident, TableName -> ColumnName -> Ident
Option
// contains filtered or unexported fields
}
func (*CodeGen) FormatSource ¶
FormatSource return formats and adjusts imports contents of the CodeGen's buffer.
func (*CodeGen) Print ¶
Print formats using the default formats for its operands and writes to the generated output. Spaces are added between operands when neither is a string. It returns the number of bytes written and any write error encountered.
func (*CodeGen) Printf ¶
Printf formats according to a format specifier for its operands and writes to the generated output. It returns the number of bytes written and any write error encountered.
type EntityDescriptor ¶
type EntityDescriptor struct {
Name string // entity name
Comment string // entity comment
Table TableDef // entity table define
Fields []*FieldDescriptor // field information
Indexes []*IndexDescriptor // index information
ForeignKeys []*ForeignKeyDescriptor // foreign key information
}
EntityDescriptor Each table corresponds to an EntityDescriptor
func ParseModel ¶
func ParseModel(v any) (*EntityDescriptor, error)
func (*EntityDescriptor) IntoProto ¶
func (s *EntityDescriptor) IntoProto() *proto.Message
func (*EntityDescriptor) IntoRapier ¶
func (s *EntityDescriptor) IntoRapier() *rapier.Struct
func (*EntityDescriptor) IntoSQL ¶
func (s *EntityDescriptor) IntoSQL() *sqlx.Table
type EntityDescriptorSlice ¶
type EntityDescriptorSlice []*EntityDescriptor
func (EntityDescriptorSlice) Len ¶
func (t EntityDescriptorSlice) Len() int
func (EntityDescriptorSlice) Less ¶
func (t EntityDescriptorSlice) Less(i, j int) bool
func (EntityDescriptorSlice) Swap ¶
func (t EntityDescriptorSlice) Swap(i, j int)
type FieldDescriptor ¶
type FieldDescriptor struct {
ColumnName string // 列名, snake case
Comment string // 注释
Nullable bool // Nullable reports whether the column may be null.
Column ColumnDef
// for go
Type GoType // go type information.
GoName string // Go name
GoPointer bool // go field is pointer.
Tags []string // Tags struct tag
}
func (*FieldDescriptor) GoType ¶
func (field *FieldDescriptor) GoType(typ any)
func (*FieldDescriptor) IntoProto ¶
func (field *FieldDescriptor) IntoProto() *proto.MessageField
func (*FieldDescriptor) IntoRapier ¶
func (field *FieldDescriptor) IntoRapier() *rapier.StructField
type ForeignKeyDef ¶
type ForeignKeyDef interface {
ForeignKey() *schema.ForeignKey
Definition() string
}
type ForeignKeyDescriptor ¶
type ForeignKeyDescriptor struct {
Symbol string
Table string
Columns []string
RefTable string
RefColumns []string
OnUpdate schema.ReferenceOption
OnDelete schema.ReferenceOption
ForeignKey ForeignKeyDef
}
type GoType ¶
type GoType struct {
Type Type // Type enum.
Ident string // Type identifier, e.g. int, time.Time, sql.NullInt64.
PkgPath string // import path. e.g. "", time, database/sql.
PkgQualifier string // a package qualifier. e.g. "", time, sql.
NonPointer bool // pointers or slices, means not need pointer.
}
func DatatypesDateType ¶
func DatatypesDateType() GoType
func DatatypesJSONType ¶
func DatatypesJSONType() GoType
func DecimalType ¶
func DecimalType() GoType
func Float32Type ¶
func Float32Type() GoType
func Float64Type ¶
func Float64Type() GoType
func GormDeletedAtType ¶
func GormDeletedAtType() GoType
func JSONRawMessageType ¶
func JSONRawMessageType() GoType
func SQLNullBoolType ¶
func SQLNullBoolType() GoType
func SQLNullByteType ¶
func SQLNullByteType() GoType
func SQLNullFloat64Type ¶
func SQLNullFloat64Type() GoType
func SQLNullInt16Type ¶
func SQLNullInt16Type() GoType
func SQLNullInt32Type ¶
func SQLNullInt32Type() GoType
func SQLNullInt64Type ¶
func SQLNullInt64Type() GoType
func SQLNullStringType ¶
func SQLNullStringType() GoType
func SQLNullTimeType ¶
func SQLNullTimeType() GoType
func SoftDeleteType ¶
func SoftDeleteType() GoType
func StringType ¶
func StringType() GoType
func Uint16Type ¶
func Uint16Type() GoType
func Uint32Type ¶
func Uint32Type() GoType
func Uint64Type ¶
func Uint64Type() GoType
func (*GoType) Comparable ¶
Comparable reports whether values of this type are comparable.
func (GoType) WithNewType ¶
type IndexDescriptor ¶
type IndexDescriptor struct {
Name string // index name
Fields []string // field columns
Index IndexDef
}
IndexDescriptor
type Option ¶
type Option struct {
EnableInt bool `yaml:"enableInt" json:"enableInt"` // 使能int8,uint8,int16,uint16,int32,uint32输出为int,uint
EnableBoolInt bool `yaml:"enableBoolInt" json:"enableBoolInt"` // 使能bool输出int
DisableNullToPoint bool `yaml:"disableNullToPoint" json:"disableNullToPoint"` // 禁用字段为null时输出指针类型,将输出为sql.Nullxx
EnableForeignKey bool `yaml:"enableForeignKey" json:"enableForeignKey"` // 输出外键
IgnoreOmitempty bool `yaml:"ignoreOmitempty" json:"ignoreOmitempty"` // 忽略tags标签的 omitempty 标签
Tags map[string]string `yaml:"tags" json:"tags"` // tags标签列表, 如 json: snakeCase, support smallCamelCase, pascalCase, snakeCase, kebab
EscapeName []string `yaml:"escapeName" json:"escapeName"` // 需要转义的字段
}
type Schema ¶
type Schema struct {
Name string // schema name
Entities []*EntityDescriptor // schema entity.
}
Schema
func (*Schema) IntoRapier ¶
type Type ¶
type Type uint8
A Type represents a field type.
const ( TypeInvalid Type = iota TypeBool TypeInt8 TypeInt16 TypeInt32 TypeInt64 TypeInt TypeUint8 TypeUint16 TypeUint32 TypeUint64 TypeUint TypeFloat32 TypeFloat64 TypeDecimal TypeString TypeEnum TypeBytes TypeTime TypeJSON TypeUUID TypeOther )
List of field types.
func (Type) IntoProtoKind ¶
func (t Type) IntoProtoKind() (k protoreflect.Kind, n string)