diff options
| author | Alex Flint <[email protected]> | 2018-12-27 10:54:34 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2018-12-27 10:54:34 -0800 |
| commit | f40417ef119019b1c94b79f3f18b7f66b9fb6bce (patch) | |
| tree | e5d42fc615df642f566bb087b69e6ee288381873 /vendor/github.com/kr/pretty/zero.go | |
| parent | fb7d95b61ba8d5860c76afb69243586dff37ae85 (diff) | |
| parent | e85cc7a2e22c960a656bed477f00d86a9a2c72ca (diff) | |
Merge pull request #70 from alexflint/create-go-modv1.0.0
Migrate from Godep to go.mod
Diffstat (limited to 'vendor/github.com/kr/pretty/zero.go')
| -rw-r--r-- | vendor/github.com/kr/pretty/zero.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/vendor/github.com/kr/pretty/zero.go b/vendor/github.com/kr/pretty/zero.go new file mode 100644 index 0000000..abb5b6f --- /dev/null +++ b/vendor/github.com/kr/pretty/zero.go @@ -0,0 +1,41 @@ +package pretty + +import ( + "reflect" +) + +func nonzero(v reflect.Value) bool { + switch v.Kind() { + case reflect.Bool: + return v.Bool() + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() != 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v.Uint() != 0 + case reflect.Float32, reflect.Float64: + return v.Float() != 0 + case reflect.Complex64, reflect.Complex128: + return v.Complex() != complex(0, 0) + case reflect.String: + return v.String() != "" + case reflect.Struct: + for i := 0; i < v.NumField(); i++ { + if nonzero(getField(v, i)) { + return true + } + } + return false + case reflect.Array: + for i := 0; i < v.Len(); i++ { + if nonzero(v.Index(i)) { + return true + } + } + return false + case reflect.Map, reflect.Interface, reflect.Slice, reflect.Ptr, reflect.Chan, reflect.Func: + return !v.IsNil() + case reflect.UnsafePointer: + return v.Pointer() != 0 + } + return true +} |
