Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func check(F interface{}) bool {
- errorInterface := reflect.TypeOf((*error)(nil)).Elem()
- if tpFunc := reflect.TypeOf(Func); tpFunc.Kind() != reflect.Func {
- return false
- } else if tpFunc.NumIn() != 1 || tpFunc.NumOut() != 1 {
- return false
- } else if tpArg := tpFunc.In(0); tpArg.Kind() != reflect.Ptr || tpArg.Elem().Kind() != reflect.Struct {
- return false
- } else if tpRet := tpFunc.Out(0); tpRet.Implements(errorInterface) {
- return false
- }
- return true
- }
- type T0 struct {
- A int64
- B float
- }
- func F0(t *T0) error {
- ...
- }
- func F1(t *T0) int {
- ...
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement