diff options
author | Alex Pilon <apilon@hashicorp.com> | 2019-02-22 18:24:37 -0500 |
---|---|---|
committer | Alex Pilon <apilon@hashicorp.com> | 2019-02-22 18:24:37 -0500 |
commit | 15c0b25d011f37e7c20aeca9eaf461f78285b8d9 (patch) | |
tree | 255c250a5c9d4801c74092d33b7337d8c14438ff /vendor/github.com/zclconf/go-cty/cty/function/error.go | |
parent | 07971ca38143c5faf951d152fba370ddcbe26ad5 (diff) | |
download | terraform-provider-statuscake-15c0b25d011f37e7c20aeca9eaf461f78285b8d9.tar.gz terraform-provider-statuscake-15c0b25d011f37e7c20aeca9eaf461f78285b8d9.tar.zst terraform-provider-statuscake-15c0b25d011f37e7c20aeca9eaf461f78285b8d9.zip |
deps: github.com/hashicorp/terraform@sdk-v0.11-with-go-modules
Updated via: go get github.com/hashicorp/terraform@sdk-v0.11-with-go-modules and go mod tidy
Diffstat (limited to 'vendor/github.com/zclconf/go-cty/cty/function/error.go')
-rw-r--r-- | vendor/github.com/zclconf/go-cty/cty/function/error.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/github.com/zclconf/go-cty/cty/function/error.go b/vendor/github.com/zclconf/go-cty/cty/function/error.go new file mode 100644 index 0000000..2b56779 --- /dev/null +++ b/vendor/github.com/zclconf/go-cty/cty/function/error.go | |||
@@ -0,0 +1,50 @@ | |||
1 | package function | ||
2 | |||
3 | import ( | ||
4 | "fmt" | ||
5 | "runtime/debug" | ||
6 | ) | ||
7 | |||
8 | // ArgError represents an error with one of the arguments in a call. The | ||
9 | // attribute Index represents the zero-based index of the argument in question. | ||
10 | // | ||
11 | // Its error *may* be a cty.PathError, in which case the error actually | ||
12 | // pertains to a nested value within the data structure passed as the argument. | ||
13 | type ArgError struct { | ||
14 | error | ||
15 | Index int | ||
16 | } | ||
17 | |||
18 | func NewArgErrorf(i int, f string, args ...interface{}) error { | ||
19 | return ArgError{ | ||
20 | error: fmt.Errorf(f, args...), | ||
21 | Index: i, | ||
22 | } | ||
23 | } | ||
24 | |||
25 | func NewArgError(i int, err error) error { | ||
26 | return ArgError{ | ||
27 | error: err, | ||
28 | Index: i, | ||
29 | } | ||
30 | } | ||
31 | |||
32 | // PanicError indicates that a panic occurred while executing either a | ||
33 | // function's type or implementation function. This is captured and wrapped | ||
34 | // into a normal error so that callers (expected to be language runtimes) | ||
35 | // are freed from having to deal with panics in buggy functions. | ||
36 | type PanicError struct { | ||
37 | Value interface{} | ||
38 | Stack []byte | ||
39 | } | ||
40 | |||
41 | func errorForPanic(val interface{}) error { | ||
42 | return PanicError{ | ||
43 | Value: val, | ||
44 | Stack: debug.Stack(), | ||
45 | } | ||
46 | } | ||
47 | |||
48 | func (e PanicError) Error() string { | ||
49 | return fmt.Sprintf("panic in function implementation: %s\n%s", e.Value, e.Stack) | ||
50 | } | ||