Add some missing Float cases
This commit is contained in:
parent
045e23e55f
commit
18c26cb2eb
|
@ -82,6 +82,8 @@ func addrToSchema(addr []string, schemaMap map[string]*Schema) []*Schema {
|
|||
fallthrough
|
||||
case TypeInt:
|
||||
fallthrough
|
||||
case TypeFloat:
|
||||
fallthrough
|
||||
case TypeString:
|
||||
if len(addr) > 0 {
|
||||
return nil
|
||||
|
|
|
@ -41,10 +41,10 @@ func (r *DiffFieldReader) ReadField(address []string) (FieldReadResult, error) {
|
|||
switch schema.Type {
|
||||
case TypeBool:
|
||||
fallthrough
|
||||
case TypeFloat:
|
||||
fallthrough
|
||||
case TypeInt:
|
||||
fallthrough
|
||||
case TypeFloat:
|
||||
fallthrough
|
||||
case TypeString:
|
||||
return r.readPrimitive(address, schema)
|
||||
case TypeList:
|
||||
|
|
|
@ -23,10 +23,10 @@ func (r *MapFieldReader) ReadField(address []string) (FieldReadResult, error) {
|
|||
switch schema.Type {
|
||||
case TypeBool:
|
||||
fallthrough
|
||||
case TypeFloat:
|
||||
fallthrough
|
||||
case TypeInt:
|
||||
fallthrough
|
||||
case TypeFloat:
|
||||
fallthrough
|
||||
case TypeString:
|
||||
return r.readPrimitive(address, schema)
|
||||
case TypeList:
|
||||
|
|
|
@ -78,6 +78,8 @@ func (w *MapFieldWriter) set(addr []string, value interface{}) error {
|
|||
fallthrough
|
||||
case TypeInt:
|
||||
fallthrough
|
||||
case TypeFloat:
|
||||
fallthrough
|
||||
case TypeString:
|
||||
return w.setPrimitive(addr, value, schema)
|
||||
case TypeList:
|
||||
|
@ -235,6 +237,11 @@ func (w *MapFieldWriter) setPrimitive(
|
|||
if err := mapstructure.Decode(v, &n); err != nil {
|
||||
return fmt.Errorf("%s: %s", k, err)
|
||||
}
|
||||
case TypeFloat:
|
||||
var n float64
|
||||
if err := mapstructure.Decode(v, &n); err != nil {
|
||||
return fmt.Errorf("%s: %s", k, err)
|
||||
}
|
||||
|
||||
set = strconv.FormatInt(int64(n), 10)
|
||||
default:
|
||||
|
|
|
@ -78,6 +78,7 @@ type Schema struct {
|
|||
//
|
||||
// TypeBool - bool
|
||||
// TypeInt - int
|
||||
// TypeFloat - float64
|
||||
// TypeString - string
|
||||
// TypeList - []interface{}
|
||||
// TypeMap - map[string]interface{}
|
||||
|
@ -406,6 +407,8 @@ func (m schemaMap) Input(
|
|||
fallthrough
|
||||
case TypeInt:
|
||||
fallthrough
|
||||
case TypeFloat:
|
||||
fallthrough
|
||||
case TypeString:
|
||||
value, err = m.inputString(input, k, v)
|
||||
default:
|
||||
|
@ -1084,6 +1087,12 @@ func (m schemaMap) validatePrimitive(
|
|||
if err := mapstructure.WeakDecode(raw, &n); err != nil {
|
||||
return nil, []error{err}
|
||||
}
|
||||
case TypeFloat:
|
||||
// Verify that we can parse this as an int
|
||||
var n float64
|
||||
if err := mapstructure.WeakDecode(raw, &n); err != nil {
|
||||
return nil, []error{err}
|
||||
}
|
||||
case TypeString:
|
||||
// Verify that we can parse this as a string
|
||||
var n string
|
||||
|
|
Loading…
Reference in New Issue