Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrInvalidAttribute = errors.New("invalid attribute") ErrInvalidRecord = errors.New("invalid record type") ErrMissingAttribute = errors.New("missing attribute") ErrDuplicateKey = errors.New("duplicate key") ErrMissingEntity = errors.New("entity not found by key") ErrImmutableSet = errors.New("attempting to modify immutable set") ErrBadSyntax = errors.New("syntax error") )
ErrInvalidAttribute ...
Functions ¶
This section is empty.
Types ¶
type Attribute ¶
type Attribute struct { Name string `rsf:"name"` Type AttributeType `rsf:"type"` Identifying bool `rsf:"identifying"` Owner *EntityType }
Attribute represents an attribute.
type AttributeType ¶
type AttributeType byte
AttributeType represents an attribute type.
const ( InvalidType AttributeType = iota StringType IntType FloatType )
Supported attribute types.
type Component ¶
type Component struct { RelName string `rsf:"rel_name"` Rel *Relationship }
Component represents part of a path.
type Constraint ¶
Constraint represnts a constraint over a relationship.
type EntityModel ¶
type EntityModel struct { Name string Types []*EntityType }
EntityModel represents a collection of entity types and how they relate.
type EntityType ¶
type EntityType struct { Name string `rsf:"name"` Attributes []*Attribute `rsf:"attribute"` Relationships []*Relationship `rsf:"relationship"` DependsOn *Relationship }
EntityType represents an entity type.
func (*EntityType) String ¶
func (t *EntityType) String() string
type Implementation ¶
Implementation represents part of an attribute filter.
type Relationship ¶
type Relationship struct { Name string `rsf:"name"` TargetName string `rsf:"type_name"` Constraints []Constraint `rsf:"constraint"` Identifying bool `rsf:"identifying"` Implementation []Implementation `rsf:"implementation"` Source, Target *EntityType }
Relationship represents a relationship.
func (*Relationship) String ¶
func (a *Relationship) String() string
Click to show internal directories.
Click to hide internal directories.