Documentation
¶
Index ¶
- Constants
- Variables
- func Cast[R CastType](v any) (r R, err error)
- func Cast2[R CastType](v1, v2 any) (r1, r2 R, err error)
- func CastMinMax[R int8 | int16 | int | int32 | int64 | float32 | float64 | time.Time](min_, max_ any, baseType, colpath string, errmsg ...string) (R, R)
- func CloneGenRules(src any) any
- func GetCustomTableGenRule(table string) (rows int, colrules map[string]GenRule)
- func GetTableRefGen(table string) map[string]*RefGen
- func MergeGenRules(dst, src GenRule, overwrite bool)
- func MustJSONMarshal(v any) []byte
- func MustYAMLUmarshal(s string) map[string]any
- func RandomStr(lenMin, lenMax int) string
- func Setup(genconf string) error
- func SetupFormatTags()
- func SetupGenRules(configFile string) error
- type ArrayGen
- type CastType
- type CustomGenConstructor
- type EnumGen
- type FormatGen
- type Gen
- func NewEnumGenerator(visitor *TypeVisitor, dataType parser.IDataTypeContext, r GenRule) (Gen, error)
- func NewFormatGenerator(format string, inner Gen) (Gen, error)
- func NewFuncGen[T any](f func() T) Gen
- func NewGolangGenerator(_ *TypeVisitor, _ parser.IDataTypeContext, r GenRule) (Gen, error)
- func NewIncGenerator(_ *TypeVisitor, _ parser.IDataTypeContext, r GenRule) (Gen, error)
- func NewIntGen[T int8 | int16 | int | int32](minVal, maxVal T) Gen
- func NewPartsGenerator(visitor *TypeVisitor, dataType parser.IDataTypeContext, r GenRule) (Gen, error)
- func NewRefGenerator(v *TypeVisitor, _ parser.IDataTypeContext, r GenRule) (Gen, error)
- func NewTypeGenerator(v *TypeVisitor, _ parser.IDataTypeContext, r GenRule) (Gen, error)
- type GenRule
- type GolangGen
- type IncGen
- type MapGen
- type PartsGen
- type RefGen
- type StructFieldGen
- type StructGen
- type TypeGen
- type TypeVisitor
- func (v *TypeVisitor) ChildGenRule(name string) GenRule
- func (v *TypeVisitor) GetBaseType(type_ parser.IDataTypeContext) (t string)
- func (v *TypeVisitor) GetChildGen(name string, childType parser.IDataTypeContext, childGenRule ...GenRule) Gen
- func (v *TypeVisitor) GetGen(type_ parser.IDataTypeContext) Gen
- func (v *TypeVisitor) GetLength() (minVal, maxVal int)
- func (v *TypeVisitor) GetMinMax() (any, any)
- func (v *TypeVisitor) GetNullFrequency() float32
- func (v *TypeVisitor) GetRule(name string, defaultValue ...any) any
- func (v *TypeVisitor) HasGenRule() bool
- func (v *TypeVisitor) MergeDefaultRule(baseType string) *TypeVisitor
Constants ¶
View Source
const DefaultRefLimit = 1000
Variables ¶
View Source
var ( GlobalGenRule = GenRule{ "null_frequency": GLOBAL_NULL_FREQUENCY, } GLOBAL_NULL_FREQUENCY = 0.0 // Default null frequency is 0% MAX_DECIMAL_INT_LEN = len(strconv.FormatInt(math.MaxInt64, 10)) TypeAlias = map[string]string{ "INTEGER": "INT", "TEXT": "STRING", "BOOL": "BOOLEAN", "DECIMALV2": "DECIMAL", "DECIMALV3": "DECIMAL", "DATEV1": "DATE", "DATEV2": "DATE", "DATETIMEV1": "DATETIME", "DATETIMEV2": "DATETIME", "TIMESTAMP": "DATETIME", } DefaultTypeGenRules = lo.MapValues(map[string]GenRule{ "ARRAY": { "length": GenRule{ "min": 1, "max": 3, }, }, "MAP": { "length": GenRule{ "min": 1, "max": 3, }, }, "JSON": { "structure": `STRUCT<col1:SMALLINT, col2:SMALLINT>`, }, "JSONB": { "structure": `STRUCT<col1:SMALLINT, col2:SMALLINT>`, }, "VARIANT": { "structure": `STRUCT<col1:SMALLINT, col2:SMALLINT>`, }, "BITMAP": { "length": 5, "min": 0, "max": math.MaxInt32, }, "TEXT": { "length": GenRule{ "min": 1, "max": 10, }, }, "STRING": { "length": GenRule{ "min": 1, "max": 10, }, }, "VARCHAR": { "length": GenRule{ "min": 1, "max": 10, }, }, "TINYINT": { "min": math.MinInt8, "max": math.MaxInt8, }, "SMALLINT": { "min": math.MinInt16, "max": math.MaxInt16, }, "INT": { "min": math.MinInt32, "max": math.MaxInt32, }, "BIGINT": { "min": math.MinInt32, "max": math.MaxInt32, }, "LARGEINT": { "min": math.MinInt32, "max": math.MaxInt32, }, "FLOAT": { "min": math.MinInt16, "max": math.MaxInt16, }, "DOUBLE": { "min": math.MinInt32, "max": math.MaxInt32, }, "DECIMAL": { "min": math.MinInt32, "max": math.MaxInt32, }, "DATE": { "min": time.Now().AddDate(-10, 0, 0), "max": time.Now(), }, "DATETIME": { "min": time.Now().AddDate(-10, 0, 0), "max": time.Now(), }, }, func(v GenRule, _ string) any { return v }) )
View Source
var CustomGenConstructors map[string]CustomGenConstructor
View Source
var FormatTags map[string]reflect.Value
Functions ¶
func CastMinMax ¶
func CloneGenRules ¶ added in v1.1.3
func GetCustomTableGenRule ¶
func GetTableRefGen ¶
func MergeGenRules ¶ added in v1.1.3
func MustJSONMarshal ¶
func MustYAMLUmarshal ¶
func SetupFormatTags ¶
func SetupFormatTags()
func SetupGenRules ¶ added in v1.1.3
Types ¶
type ArrayGen ¶
func (*ArrayGen) SetElementGen ¶
type CustomGenConstructor ¶
type CustomGenConstructor = func(v *TypeVisitor, dataType parser.IDataTypeContext, r GenRule) (Gen, error)
type EnumGen ¶
type Gen ¶
type Gen interface {
Gen() any
}
func NewEnumGenerator ¶
func NewEnumGenerator(visitor *TypeVisitor, dataType parser.IDataTypeContext, r GenRule) (Gen, error)
func NewFuncGen ¶
func NewGolangGenerator ¶
func NewGolangGenerator(_ *TypeVisitor, _ parser.IDataTypeContext, r GenRule) (Gen, error)
func NewIncGenerator ¶
func NewIncGenerator(_ *TypeVisitor, _ parser.IDataTypeContext, r GenRule) (Gen, error)
func NewPartsGenerator ¶ added in v1.1.3
func NewPartsGenerator(visitor *TypeVisitor, dataType parser.IDataTypeContext, r GenRule) (Gen, error)
func NewRefGenerator ¶
func NewRefGenerator(v *TypeVisitor, _ parser.IDataTypeContext, r GenRule) (Gen, error)
func NewTypeGenerator ¶
func NewTypeGenerator(v *TypeVisitor, _ parser.IDataTypeContext, r GenRule) (Gen, error)
type MapGen ¶
func (*MapGen) SetValueGen ¶
type RefGen ¶
type RefGen struct {
Table string
Column string
Limit int
// contains filtered or unexported fields
}
func (*RefGen) AddRefVals ¶
func (*RefGen) TableColumn ¶
type StructFieldGen ¶
func (*StructFieldGen) Gen ¶
func (g *StructFieldGen) Gen() any
type StructGen ¶
type StructGen struct {
Fields []*StructFieldGen
}
type TypeVisitor ¶
type TypeVisitor struct {
Colpath string // the path of the column, e.g. "db.table.col"
GenRule GenRule // rules of generator
// the tables that ref generator point to
TableRefs *[]string
}
func NewTypeVisitor ¶
func NewTypeVisitor(colpath string, genRule GenRule) *TypeVisitor
func (*TypeVisitor) ChildGenRule ¶
func (v *TypeVisitor) ChildGenRule(name string) GenRule
func (*TypeVisitor) GetBaseType ¶
func (v *TypeVisitor) GetBaseType(type_ parser.IDataTypeContext) (t string)
func (*TypeVisitor) GetChildGen ¶
func (v *TypeVisitor) GetChildGen(name string, childType parser.IDataTypeContext, childGenRule ...GenRule) Gen
func (*TypeVisitor) GetGen ¶ added in v1.1.3
func (v *TypeVisitor) GetGen(type_ parser.IDataTypeContext) Gen
func (*TypeVisitor) GetLength ¶
func (v *TypeVisitor) GetLength() (minVal, maxVal int)
func (*TypeVisitor) GetMinMax ¶
func (v *TypeVisitor) GetMinMax() (any, any)
func (*TypeVisitor) GetNullFrequency ¶
func (v *TypeVisitor) GetNullFrequency() float32
func (*TypeVisitor) HasGenRule ¶
func (v *TypeVisitor) HasGenRule() bool
func (*TypeVisitor) MergeDefaultRule ¶
func (v *TypeVisitor) MergeDefaultRule(baseType string) *TypeVisitor
Click to show internal directories.
Click to hide internal directories.