43 lines
836 B
Go
43 lines
836 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"git.xdrm.io/go/aicra/driver"
|
||
|
"reflect"
|
||
|
)
|
||
|
|
||
|
func main() {}
|
||
|
func Export() driver.Checker { return new(IntChecker) }
|
||
|
|
||
|
var validationTable = map[reflect.Kind]interface{}{
|
||
|
reflect.Float32: nil,
|
||
|
reflect.Float64: nil,
|
||
|
reflect.Int: nil,
|
||
|
reflect.Int8: nil,
|
||
|
reflect.Int16: nil,
|
||
|
reflect.Int32: nil,
|
||
|
reflect.Int64: nil,
|
||
|
reflect.Uint: nil,
|
||
|
reflect.Uint8: nil,
|
||
|
reflect.Uint16: nil,
|
||
|
reflect.Uint32: nil,
|
||
|
reflect.Uint64: nil,
|
||
|
}
|
||
|
|
||
|
type IntChecker int
|
||
|
|
||
|
// Match matches the string 'int'
|
||
|
func (ick IntChecker) Match(name string) bool {
|
||
|
return name == "int"
|
||
|
}
|
||
|
|
||
|
// Check returns true for any type from the @validationTable
|
||
|
func (ick IntChecker) Check(value interface{}) bool {
|
||
|
|
||
|
kind := reflect.TypeOf(value).Kind()
|
||
|
|
||
|
_, isTypeValid := validationTable[kind]
|
||
|
|
||
|
return isTypeValid
|
||
|
|
||
|
}
|