Commit 937d4d49 authored by Nick Cabatoff's avatar Nick Cabatoff
Browse files

Add TypeAny which is just interface{}.

parent 52d70a46
Showing with 17 additions and 3 deletions
+17 -3
......@@ -40,7 +40,7 @@ func (d *FieldData) Validate() error {
switch schema.Type {
case TypeBool, TypeInt, TypeMap, TypeDurationSecond, TypeSignedDurationSecond, TypeString,
TypeLowerCaseString, TypeNameString, TypeSlice, TypeStringSlice, TypeCommaStringSlice,
TypeKVPairs, TypeCommaIntSlice, TypeHeader, TypeFloat, TypeTime:
TypeKVPairs, TypeCommaIntSlice, TypeHeader, TypeFloat, TypeTime, TypeAny:
_, _, err := d.getPrimitive(field, schema)
if err != nil {
return errwrap.Wrapf(fmt.Sprintf("error converting input %v for field %q: {{err}}", value, field), err)
......@@ -131,7 +131,7 @@ func (d *FieldData) GetOkErr(k string) (interface{}, bool, error) {
}
switch schema.Type {
case TypeBool, TypeInt, TypeMap, TypeDurationSecond, TypeSignedDurationSecond, TypeString,
case TypeAny, TypeBool, TypeInt, TypeMap, TypeDurationSecond, TypeSignedDurationSecond, TypeString,
TypeLowerCaseString, TypeNameString, TypeSlice, TypeStringSlice, TypeCommaStringSlice,
TypeKVPairs, TypeCommaIntSlice, TypeHeader, TypeFloat, TypeTime:
return d.getPrimitive(k, schema)
......@@ -148,6 +148,9 @@ func (d *FieldData) getPrimitive(k string, schema *FieldSchema) (interface{}, bo
}
switch t := schema.Type; t {
case TypeAny:
return raw, true, nil
case TypeBool:
var result bool
if err := mapstructure.WeakDecode(raw, &result); err != nil {
......
......@@ -62,6 +62,8 @@ const (
// formatted as a string or a number. The resulting time.Time
// is converted to UTC.
TypeTime
TypeAny
)
func (t FieldType) String() string {
......@@ -90,6 +92,8 @@ func (t FieldType) String() string {
return "float"
case TypeTime:
return "time"
case TypeAny:
return "any"
default:
return "unknown type"
}
......
......@@ -40,7 +40,7 @@ func (d *FieldData) Validate() error {
switch schema.Type {
case TypeBool, TypeInt, TypeMap, TypeDurationSecond, TypeSignedDurationSecond, TypeString,
TypeLowerCaseString, TypeNameString, TypeSlice, TypeStringSlice, TypeCommaStringSlice,
TypeKVPairs, TypeCommaIntSlice, TypeHeader, TypeFloat, TypeTime:
TypeKVPairs, TypeCommaIntSlice, TypeHeader, TypeFloat, TypeTime, TypeAny:
_, _, err := d.getPrimitive(field, schema)
if err != nil {
return errwrap.Wrapf(fmt.Sprintf("error converting input %v for field %q: {{err}}", value, field), err)
......@@ -148,6 +148,9 @@ func (d *FieldData) getPrimitive(k string, schema *FieldSchema) (interface{}, bo
}
switch t := schema.Type; t {
case TypeAny:
return raw, true, nil
case TypeBool:
var result bool
if err := mapstructure.WeakDecode(raw, &result); err != nil {
......
......@@ -62,6 +62,8 @@ const (
// formatted as a string or a number. The resulting time.Time
// is converted to UTC.
TypeTime
TypeAny
)
func (t FieldType) String() string {
......@@ -90,6 +92,8 @@ func (t FieldType) String() string {
return "float"
case TypeTime:
return "time"
case TypeAny:
return "any"
default:
return "unknown type"
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment