Documentation ¶
Index ¶
Constants ¶
const ( // FirstGen is a number of the first generation for an object FirstGen Generation = 1 // LastGen is a number of the initial generation for an object LastGen Generation = 0 // SystemNS is a name of system namespace SystemNS = "system" // EmptyName is the default empty name for runtime objects EmptyName = "" )
const KeySeparator = "/"
KeySeparator is used to separate key parts (namespace, kind, name)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Codec ¶
Codec interface represents combination of Encoder and Decoder interfaces for both sides encoding/decoding of runtime objects to/from bytes
type Constructor ¶
type Constructor func() Object
Constructor is a function to get instance of the specific object
type Decoder ¶
type Decoder interface { DecodeOne(data []byte) (Object, error) DecodeOneOrMany(data []byte) ([]Object, error) }
Decoder interface represents decoding of the runtime objects from bytes
type Encoder ¶
type Encoder interface { EncodeOne(obj Object) ([]byte, error) EncodeMany(objs []Object) ([]byte, error) }
Encoder interface represents encoding of the runtime objects into bytes
type Generation ¶
type Generation uint64
Generation represents object's "version" and starts from 0
func ParseGeneration ¶
func ParseGeneration(gen string) Generation
ParseGeneration returns Generation type representation of specified generation string
func (Generation) Next ¶
func (gen Generation) Next() Generation
Next returns the next generation of the base object (current + 1)
func (Generation) String ¶
func (gen Generation) String() string
String returns generation as string to implement Stringer interface
type GenerationMetadata ¶
type GenerationMetadata struct {
Generation Generation
}
GenerationMetadata is the default struct for metadata with only generation in it
type Info ¶
type Info struct { Kind Kind Storable bool Versioned bool Constructor Constructor }
Info represents list of additional characteristics of the runtime object
func (*Info) GetTypeKind ¶
GetTypeKind returns TypeKind instance for the object described by info
type Key ¶
type Key = string
Key represents storable object key - namespace + kind + name separated by KeySeparator
func KeyForStorable ¶
KeyForStorable returns Key for storable object
type Object ¶
type Object interface {
GetKind() Kind
}
Object represents minimal object that could be operated in runtime with only Kind being mandatory characteristic
type Registry ¶
Registry contains a map of objects info structures by their kind
type Storable ¶
Storable represents runtime object that could be stored in database and having two additional mandatory characteristics: Name and Namespace that together with Kind forms Key (namespace + kind + name) that represents coordinates of the object in database
type TypeKind ¶
type TypeKind struct {
Kind Kind
}
TypeKind represents type definition of the runtime object, should be embedded into all runtime objects with `yaml:",inline"` for proper yaml codec encoding and decoding
type Versioned ¶
type Versioned interface { Storable GetGeneration() Generation SetGeneration(gen Generation) }
Versioned extends Storable with mandatory Generation characteristic to represent versioned objects that are having multiple generations stored in database