...
1
9
10 package openapi
11
12 import (
13 "io"
14 "reflect"
15 )
16
17
18 func Response(code int, body io.Reader, filename string) ImplResponse {
19 return ImplResponse{
20 Code: code,
21 Body: body,
22 Filename: filename,
23 }
24 }
25
26
27 func IsZeroValue(val interface{}) bool {
28 return val == nil || reflect.DeepEqual(val, reflect.Zero(reflect.TypeOf(val)).Interface())
29 }
30
31
32
33 func AssertRecurseInterfaceRequired(obj interface{}, callback func(interface{}) error) error {
34 return AssertRecurseValueRequired(reflect.ValueOf(obj), callback)
35 }
36
37
38
39 func AssertRecurseValueRequired(value reflect.Value, callback func(interface{}) error) error {
40 switch value.Kind() {
41
42 case reflect.Struct:
43 if err := callback(value.Interface()); err != nil {
44 return err
45 }
46
47
48 case reflect.Slice:
49 for i := 0; i < value.Len(); i += 1 {
50 if err := AssertRecurseValueRequired(value.Index(i), callback); err != nil {
51 return err
52 }
53 }
54 }
55 return nil
56 }
57
View as plain text