mirror of
https://github.com/labstack/echo.git
synced 2025-03-21 21:27:04 +02:00
Add pointer binding of proper types to DefaultBinder (#915)
This commit is contained in:
parent
0dfcb31d9e
commit
f3f3e99ba3
2
bind.go
2
bind.go
@ -142,6 +142,8 @@ func setWithProperType(valueKind reflect.Kind, val string, structField reflect.V
|
||||
}
|
||||
|
||||
switch valueKind {
|
||||
case reflect.Ptr:
|
||||
return setWithProperType(structField.Elem().Kind(), val, structField.Elem())
|
||||
case reflect.Int:
|
||||
return setIntField(val, 0, structField)
|
||||
case reflect.Int8:
|
||||
|
29
bind_test.go
29
bind_test.go
@ -17,26 +17,39 @@ import (
|
||||
type (
|
||||
bindTestStruct struct {
|
||||
I int
|
||||
PtrI *int
|
||||
I8 int8
|
||||
PtrI8 *int8
|
||||
I16 int16
|
||||
PtrI16 *int16
|
||||
I32 int32
|
||||
PtrI32 *int32
|
||||
I64 int64
|
||||
PtrI64 *int64
|
||||
UI uint
|
||||
PtrUI *uint
|
||||
UI8 uint8
|
||||
PtrUI8 *uint8
|
||||
UI16 uint16
|
||||
PtrUI16 *uint16
|
||||
UI32 uint32
|
||||
PtrUI32 *uint32
|
||||
UI64 uint64
|
||||
PtrUI64 *uint64
|
||||
B bool
|
||||
PtrB *bool
|
||||
F32 float32
|
||||
PtrF32 *float32
|
||||
F64 float64
|
||||
PtrF64 *float64
|
||||
S string
|
||||
PtrS *string
|
||||
cantSet string
|
||||
DoesntExist string
|
||||
T Timestamp
|
||||
Tptr *Timestamp
|
||||
SA StringArray
|
||||
}
|
||||
|
||||
Timestamp time.Time
|
||||
TA []Timestamp
|
||||
StringArray []string
|
||||
@ -69,19 +82,33 @@ func (t bindTestStruct) GetCantSet() string {
|
||||
|
||||
var values = map[string][]string{
|
||||
"I": {"0"},
|
||||
"PtrI": {"0"},
|
||||
"I8": {"8"},
|
||||
"PtrI8": {"8"},
|
||||
"I16": {"16"},
|
||||
"PtrI16": {"16"},
|
||||
"I32": {"32"},
|
||||
"PtrI32": {"32"},
|
||||
"I64": {"64"},
|
||||
"PtrI64": {"64"},
|
||||
"UI": {"0"},
|
||||
"PtrUI": {"0"},
|
||||
"UI8": {"8"},
|
||||
"PtrUI8": {"8"},
|
||||
"UI16": {"16"},
|
||||
"PtrUI16": {"16"},
|
||||
"UI32": {"32"},
|
||||
"PtrUI32": {"32"},
|
||||
"UI64": {"64"},
|
||||
"PtrUI64": {"64"},
|
||||
"B": {"true"},
|
||||
"PtrB": {"true"},
|
||||
"F32": {"32.5"},
|
||||
"PtrF32": {"32.5"},
|
||||
"F64": {"64.5"},
|
||||
"PtrF64": {"64.5"},
|
||||
"S": {"test"},
|
||||
"PtrS": {"test"},
|
||||
"cantSet": {"test"},
|
||||
"T": {"2016-12-06T19:09:05+01:00"},
|
||||
"Tptr": {"2016-12-06T19:09:05+01:00"},
|
||||
|
Loading…
x
Reference in New Issue
Block a user