aicra/datatype/types.go

16 lines
573 B
Go
Raw Permalink Normal View History

package datatype
import "reflect"
// Validator returns whether a given value fulfills a datatype
// and casts the value into a compatible type
type Validator func(value interface{}) (cast interface{}, valid bool)
// T builds a T from the type definition (from the configuration field "type") and returns NIL if the type
// definition does not match this T ; the registry is passed for recursive datatypes (e.g. slices, structs, etc)
// to be able to access other datatypes
type T interface {
2020-03-28 18:11:23 +00:00
Type() reflect.Type
Build(typeDefinition string, registry ...T) Validator
}