48 lines
741 B
Go
48 lines
741 B
Go
package fields
|
|
|
|
// FieldType is the enum of types that a field can be.
|
|
type FieldType uint
|
|
|
|
const (
|
|
TypeInvalid FieldType = 0
|
|
TypeString FieldType = iota
|
|
TypeInt
|
|
TypeBool
|
|
TypeMap
|
|
TypeArray
|
|
)
|
|
|
|
func (t FieldType) String() string {
|
|
switch t {
|
|
case TypeString:
|
|
return "string"
|
|
case TypeInt:
|
|
return "integer"
|
|
case TypeBool:
|
|
return "boolean"
|
|
case TypeMap:
|
|
return "map"
|
|
case TypeArray:
|
|
return "array"
|
|
default:
|
|
return "unknown type"
|
|
}
|
|
}
|
|
|
|
func (t FieldType) Zero() interface{} {
|
|
switch t {
|
|
case TypeString:
|
|
return ""
|
|
case TypeInt:
|
|
return 0
|
|
case TypeBool:
|
|
return false
|
|
case TypeMap:
|
|
return map[string]interface{}{}
|
|
case TypeArray:
|
|
return []interface{}{}
|
|
default:
|
|
panic("unknown type: " + t.String())
|
|
}
|
|
}
|