Documentation
¶
Overview ¶
Package ast provides types and logic for building Go ASTs.
Index ¶
- func CollectImports(typeInfos []TypeInfo) map[string]string
- func ExportedIdentifier(raw string) string
- func FileName(raw string) string
- func UnexportedIdentifier(raw string) string
- func UniqueName(base string, used map[string]int) (string, error)
- type Builder
- type File
- type Options
- type PreparedOptions
- type TypeInfo
- type TypeResolver
- func NewTypeResolver(transformer *transform.Transformer) *TypeResolver
- func NewTypeResolverFull(transformer *transform.Transformer, database config.Database, ...) *TypeResolver
- func NewTypeResolverWithDatabase(transformer *transform.Transformer, database config.Database) *TypeResolver
- func NewTypeResolverWithOptions(transformer *transform.Transformer, emitPointersForNull bool) *TypeResolver
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CollectImports ¶
CollectImports gathers all unique imports from type information
func ExportedIdentifier ¶
ExportedIdentifier converts raw input into a public Go identifier.
func UnexportedIdentifier ¶
UnexportedIdentifier converts raw input into a private Go identifier.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder constructs Go AST files for code generation outputs.
type Options ¶
type Options struct {
Package string
EmitJSONTags bool
EmitEmptySlices bool
EmitPointersForNull bool
Prepared PreparedOptions
TypeResolver *TypeResolver
}
Options configures the AST builder.
type PreparedOptions ¶
PreparedOptions captures prepared-query generation toggles.
type TypeInfo ¶
type TypeInfo struct {
GoType string
UsesSQLNull bool
Import string // For custom types
Package string // For custom types
}
TypeInfo describes a resolved Go type.
type TypeResolver ¶
type TypeResolver struct {
// contains filtered or unexported fields
}
TypeResolver handles mapping between SQL types and Go types.
func NewTypeResolver ¶
func NewTypeResolver(transformer *transform.Transformer) *TypeResolver
NewTypeResolver creates a new TypeResolver with optional custom type support.
func NewTypeResolverFull ¶
func NewTypeResolverFull(transformer *transform.Transformer, database config.Database, emitPointersForNull bool) *TypeResolver
NewTypeResolverFull creates a TypeResolver with all options.
func NewTypeResolverWithDatabase ¶
func NewTypeResolverWithDatabase(transformer *transform.Transformer, database config.Database) *TypeResolver
NewTypeResolverWithDatabase creates a TypeResolver for a specific database.
func NewTypeResolverWithOptions ¶
func NewTypeResolverWithOptions(transformer *transform.Transformer, emitPointersForNull bool) *TypeResolver
NewTypeResolverWithOptions creates a TypeResolver with all options configured.
func (*TypeResolver) GetRequiredImports ¶
func (r *TypeResolver) GetRequiredImports() map[string]string
GetRequiredImports returns the imports needed for the resolved types.
func (*TypeResolver) GetSemanticMapper ¶
func (r *TypeResolver) GetSemanticMapper() *types.SQLiteMapper
GetSemanticMapper returns the semantic type mapper for the current database.
func (*TypeResolver) Map ¶
func (r *TypeResolver) Map(sqlType string, nullable bool) types.SemanticType
Map implements the types.Mapper interface for semantic type mapping.
func (*TypeResolver) ResolveType ¶
func (r *TypeResolver) ResolveType(typeOrSQLType string, nullable bool) TypeInfo
ResolveType determines the Go type for a given SQL type or existing Go type.