ent: github.com/facebookincubator/ent Index | Files | Directories

package ent

import "github.com/facebookincubator/ent"

Package ent is the interface between end-user schemas and entc (ent codegen).

Index

Package Files

ent.go

type Config Uses

type Config struct {
    // A Table is an optional table name defined for the schema.
    Table string
}

A Config structure is used to configure an entity schema. The usage of this structure is as follows:

func (T) Config() ent.Config {
	return ent.Config{
		Table: "Name",
	}
}

type Edge Uses

type Edge interface {
    Descriptor() *edge.Descriptor
}

A Edge interface returns an edge descriptor for vertex edges. The usage for the interface is as follows:

func (T) Edges() []ent.Edge {
	return []ent.Edge{
		edge.To("S", S.Type),
	}
}

type Field Uses

type Field interface {
    Descriptor() *field.Descriptor
}

A Field interface returns a field descriptor for vertex fields/properties. The usage for the interface is as follows:

func (T) Fields() []ent.Field {
	return []ent.Field{
		field.Int("int"),
	}
}

type Index Uses

type Index interface {
    Descriptor() *index.Descriptor
}

A Index interface returns an index descriptor for vertex indexes. The usage for the interface is as follows:

func (T) Indexes() []ent.Index {
	return []ent.Index{
		index.Fields("f1", "f2").
			Unique(),
	}
}

type Interface Uses

type Interface interface {
    // Type is a dummy method, that is used in edge declaration.
    //
    // The Type method should be used as follows:
    //
    //	type S struct { ent.Schema }
    //
    //	type T struct { ent.Schema }
    //
    //	func (T) Edges() []ent.Edge {
    //		return []ent.Edge{
    //			edge.To("S", S.Type),
    //		}
    //	}
    //
    Type()
    // Fields returns the fields of the schema.
    Fields() []Field
    // Edges returns the edges of the schema.
    Edges() []Edge
    // Indexes returns the indexes of the schema.
    Indexes() []Index
    // Config returns an optional config for the schema.
    Config() Config
    // Mixin returns an optional list of Mixin to extends
    // the schema.
    Mixin() []Mixin
}

The Interface type describes the requirements for an exported type defined in the schema package. It functions as the interface between the user's schema types and codegen loader. Users should use the Schema type for embedding as follows:

type T struct {
	ent.Schema
}

type Mixin Uses

type Mixin interface {
    // Fields returns a slice of fields to be added
    // to the schema fields.
    Fields() []Field
}

The Mixin type describes a set of methods that can extend other methods in the schema without calling them directly.

type TimeMixin struct {}

func (TimeMixin) Fields() []ent.Field {
	return []ent.Field{
		field.Time("created_at").
			Immutable().
			Default(time.Now),
		field.Time("updated_at").
			Default(time.Now).
			UpdateDefault(time.Now),
	}
}

type T struct {
	ent.Schema
}

func(T) Mixin() []ent.Mixin {
	return []ent.Mixin{
		TimeMixin{},
	}
}

type Schema Uses

type Schema struct {
    Interface
}

Schema is the default implementation for the schema Interface. It can be embedded in end-user schemas as follows:

type T struct {
	ent.Schema
}

func (Schema) Config Uses

func (Schema) Config() Config

Config of the schema.

func (Schema) Edges Uses

func (Schema) Edges() []Edge

Edges of the schema.

func (Schema) Fields Uses

func (Schema) Fields() []Field

Fields of the schema.

func (Schema) Indexes Uses

func (Schema) Indexes() []Index

Indexes of the schema.

func (Schema) Mixin Uses

func (Schema) Mixin() []Mixin

Mixin of the schema.

Directories

PathSynopsis
dialect
dialect/gremlin
dialect/gremlin/encoding
dialect/gremlin/encoding/graphson
dialect/gremlin/graph
dialect/gremlin/graph/dslPackage dsl provide an API for writing gremlin dsl queries almost as-is in Go without using strings in the code.
dialect/gremlin/graph/dsl/__
dialect/gremlin/graph/dsl/g
dialect/gremlin/graph/dsl/p
dialect/gremlin/ocgremlin
dialect/sql
dialect/sql/schemaPackage schema contains all schema migration logic for SQL dialects.
entcPackage entc provides an interface for interacting with entc (ent codegen) as a package rather than an executable.
entc/genPackage gen is the interface for generating loaded schemas into a Go package.
entc/gen/internalPackage internal Code generated by go-bindata.
entc/integration
entc/integration/ent
entc/integration/ent/card
entc/integration/ent/comment
entc/integration/ent/fieldtype
entc/integration/ent/file
entc/integration/ent/filetype
entc/integration/ent/group
entc/integration/ent/groupinfo
entc/integration/ent/item
entc/integration/ent/migrate
entc/integration/ent/node
entc/integration/ent/pet
entc/integration/ent/predicate
entc/integration/ent/schema
entc/integration/ent/user
entc/loadPackage load is the interface for loading schema package into a Go program.
entc/load/internalPackage internal Code generated by go-bindata.
schema/edge
schema/field
schema/field/gengen is a codegen cmd for generating numeric build types from template.
schema/index
schema/schemautil

Package ent imports 3 packages (graph) and is imported by 6 packages. Updated 2019-11-18. Refresh now. Tools for package owners.