Documentation
¶
Overview ¶
Package load is the interface for loading an ent/schema package into a Go program.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct {
// Path is the path for the schema package.
Path string
// Names are the schema names to load. Empty means all schemas in the directory.
Names []string
// BuildFlags are forwarded to the package.Config when
// loading the schema package.
BuildFlags []string
}
Config holds the configuration for loading an ent/schema package.
func (*Config) Load ¶
func (c *Config) Load() (*SchemaSpec, error)
Load loads the schemas package and build the Go plugin with this info.
type Edge ¶
type Edge struct {
Name string `json:"name,omitempty"`
Type string `json:"type,omitempty"`
Tag string `json:"tag,omitempty"`
Field string `json:"field,omitempty"`
RefName string `json:"ref_name,omitempty"`
Ref *Edge `json:"ref,omitempty"`
Through *struct{ N, T string } `json:"through,omitempty"`
Unique bool `json:"unique,omitempty"`
Inverse bool `json:"inverse,omitempty"`
Required bool `json:"required,omitempty"`
Immutable bool `json:"immutable,omitempty"`
StorageKey *edge.StorageKey `json:"storage_key,omitempty"`
Annotations map[string]any `json:"annotations,omitempty"`
Comment string `json:"comment,omitempty"`
}
Edge represents an ent.Edge that was loaded from a complied user package.
func NewEdge ¶
func NewEdge(ed *edge.Descriptor) *Edge
NewEdge creates an loaded edge from edge descriptor.
type Field ¶
type Field struct {
Name string `json:"name,omitempty"`
Info *field.TypeInfo `json:"type,omitempty"`
ValueScanner bool `json:"value_scanner,omitempty"`
Tag string `json:"tag,omitempty"`
Size *int64 `json:"size,omitempty"`
Enums []struct{ N, V string } `json:"enums,omitempty"`
Unique bool `json:"unique,omitempty"`
Nillable bool `json:"nillable,omitempty"`
Optional bool `json:"optional,omitempty"`
Default bool `json:"default,omitempty"`
DefaultValue any `json:"default_value,omitempty"`
DefaultKind reflect.Kind `json:"default_kind,omitempty"`
UpdateDefault bool `json:"update_default,omitempty"`
Immutable bool `json:"immutable,omitempty"`
Validators int `json:"validators,omitempty"`
StorageKey string `json:"storage_key,omitempty"`
Position *Position `json:"position,omitempty"`
Sensitive bool `json:"sensitive,omitempty"`
SchemaType map[string]string `json:"schema_type,omitempty"`
Annotations map[string]any `json:"annotations,omitempty"`
Comment string `json:"comment,omitempty"`
Deprecated bool `json:"deprecated,omitempty"`
DeprecatedReason string `json:"deprecated_reason,omitempty"`
}
Field represents an ent.Field that was loaded from a complied user package.
type Index ¶
type Index struct {
Unique bool `json:"unique,omitempty"`
Edges []string `json:"edges,omitempty"`
Fields []string `json:"fields,omitempty"`
StorageKey string `json:"storage_key,omitempty"`
Annotations map[string]any `json:"annotations,omitempty"`
}
Index represents an ent.Index that was loaded from a complied user package.
func NewIndex ¶
func NewIndex(idx *index.Descriptor) *Index
NewIndex creates an loaded index from index descriptor.
type Position ¶
type Position struct {
Index int // Index in the field/hook list.
MixedIn bool // Indicates if the schema object was mixed-in.
MixinIndex int // Mixin index in the mixin list.
}
Position describes a position in the schema.
type Schema ¶
type Schema struct {
Name string `json:"name,omitempty"`
Pos string `json:"-"`
View bool `json:"view,omitempty"`
Config ent.Config `json:"config,omitempty"`
Edges []*Edge `json:"edges,omitempty"`
Fields []*Field `json:"fields,omitempty"`
Indexes []*Index `json:"indexes,omitempty"`
Hooks []*Position `json:"hooks,omitempty"`
Interceptors []*Position `json:"interceptors,omitempty"`
Policy []*Position `json:"policy,omitempty"`
Annotations map[string]any `json:"annotations,omitempty"`
}
Schema represents an ent.Schema that was loaded from a complied user package.
func UnmarshalSchema ¶
UnmarshalSchema decodes the given buffer to a loaded schema.
type SchemaSpec ¶
type SchemaSpec struct {
// Schemas defines the loaded schema descriptors.
Schemas []*Schema
// PkgPath is the package path of the loaded
// ent.Schema package.
PkgPath string
// Module defines the module information for
// the user schema package if exists.
Module *packages.Module
}
A SchemaSpec holds a serializable version of an ent.Schema and its Go package and module information.