blob: 6b10a8c90b36130970389332424ff0adfbca2322 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
package internal
func ErrWithKey(err error, key string) error {
return &errorWithKey{key: key, err: err}
}
type errorWithKey struct {
key string
err error
}
func (err *errorWithKey) Error() string {
return err.err.Error() + ": " + err.key
}
func (err *errorWithKey) Unwrap() error {
return err.err
}
func ErrWithMsg(err error, msg string) error {
return &errorWithMsg{msg: msg, err: err}
}
type errorWithMsg struct {
msg string
err error
}
func (err *errorWithMsg) Error() string {
return err.msg + ": " + err.err.Error()
}
func (err *errorWithMsg) Unwrap() error {
return err.err
}
func WrapErr(inner, outer error) error {
return &wrappedError{inner: inner, outer: outer}
}
type wrappedError struct {
inner error
outer error
}
func (err *wrappedError) Is(other error) bool {
return err.inner == other || err.outer == other
}
func (err *wrappedError) Error() string {
return err.inner.Error() + ": " + err.outer.Error()
}
func (err *wrappedError) Unwrap() []error {
return []error{err.inner, err.outer}
}
|