2017-12-16 05:38:28 +01:00
|
|
|
package mvc
|
|
|
|
|
2019-04-16 17:01:48 +02:00
|
|
|
import (
|
|
|
|
"reflect"
|
|
|
|
)
|
|
|
|
|
2020-03-01 07:34:53 +01:00
|
|
|
var baseControllerTyp = reflect.TypeOf((*BaseController)(nil)).Elem()
|
2017-12-16 05:38:28 +01:00
|
|
|
|
|
|
|
func isBaseController(ctrlTyp reflect.Type) bool {
|
|
|
|
return ctrlTyp.Implements(baseControllerTyp)
|
|
|
|
}
|
|
|
|
|
2020-02-29 13:18:15 +01:00
|
|
|
// indirectType returns the value of a pointer-type "typ".
|
|
|
|
// If "typ" is a pointer, array, chan, map or slice it returns its Elem,
|
|
|
|
// otherwise returns the typ as it's.
|
|
|
|
func indirectType(typ reflect.Type) reflect.Type {
|
|
|
|
switch typ.Kind() {
|
|
|
|
case reflect.Ptr, reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:
|
|
|
|
return typ.Elem()
|
|
|
|
}
|
|
|
|
return typ
|
|
|
|
}
|