HasInterface returns true if err contains an error which implements the interface pointed to by referenceInterface. The type of referenceInterface must be a pointer to an interface type. If referenceInterface is not a pointer to an interface, this function will panic.
(err error, referenceInterface interface{})
| 126 | // must be a pointer to an interface type. If referenceInterface is not a |
| 127 | // pointer to an interface, this function will panic. |
| 128 | func HasInterface(err error, referenceInterface interface{}) bool { |
| 129 | iface := getInterfaceType("HasInterface", referenceInterface) |
| 130 | _, isType := If(err, func(err error) (interface{}, bool) { |
| 131 | return nil, reflect.TypeOf(err).Implements(iface) |
| 132 | }) |
| 133 | return isType |
| 134 | } |
| 135 | |
| 136 | func getInterfaceType(context string, referenceInterface interface{}) reflect.Type { |
| 137 | typ := reflect.TypeOf(referenceInterface) |
searching dependent graphs…