diff options
author | Niall Sheridan <nsheridan@gmail.com> | 2016-05-29 14:46:06 +0100 |
---|---|---|
committer | Niall Sheridan <nsheridan@gmail.com> | 2016-05-29 14:46:06 +0100 |
commit | 1a16ff15b87a10b2e7359ba53104ed4bd9fef9e8 (patch) | |
tree | 1f6ea2155189713110bf05dc62af4a560152917c /vendor/github.com/hashicorp/go-multierror/flatten.go | |
parent | 2d76d6028d75dda1d239d228d47679b5b35ee1e1 (diff) | |
parent | 46ec48845704b54d395727441edc049b009da774 (diff) |
Merge pull request #10 from nsheridan/hcl
Switch from json to hcl configs
Diffstat (limited to 'vendor/github.com/hashicorp/go-multierror/flatten.go')
-rw-r--r-- | vendor/github.com/hashicorp/go-multierror/flatten.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/vendor/github.com/hashicorp/go-multierror/flatten.go b/vendor/github.com/hashicorp/go-multierror/flatten.go new file mode 100644 index 0000000..aab8e9a --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/flatten.go @@ -0,0 +1,26 @@ +package multierror + +// Flatten flattens the given error, merging any *Errors together into +// a single *Error. +func Flatten(err error) error { + // If it isn't an *Error, just return the error as-is + if _, ok := err.(*Error); !ok { + return err + } + + // Otherwise, make the result and flatten away! + flatErr := new(Error) + flatten(err, flatErr) + return flatErr +} + +func flatten(err error, flatErr *Error) { + switch err := err.(type) { + case *Error: + for _, e := range err.Errors { + flatten(e, flatErr) + } + default: + flatErr.Errors = append(flatErr.Errors, err) + } +} |