|
|
|
@ -36,6 +36,16 @@ type Err struct { |
|
|
|
|
hint string |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Clone returns a new Err struct with the same information
|
|
|
|
|
func (u Err) Clone() Err { |
|
|
|
|
return Err{ |
|
|
|
|
msg: u.msg, |
|
|
|
|
detail: u.detail, |
|
|
|
|
action: u.action, |
|
|
|
|
hint: u.hint, |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Return the error message
|
|
|
|
|
func (u Err) Error() string { |
|
|
|
|
if u.detail == "" { |
|
|
|
@ -49,12 +59,16 @@ func (u Err) Error() string { |
|
|
|
|
|
|
|
|
|
// Msg - Replace the current error's message
|
|
|
|
|
func (u Err) Msg(m string, args ...interface{}) Err { |
|
|
|
|
return Err{ |
|
|
|
|
msg: fmt.Sprintf(m, args...), |
|
|
|
|
detail: u.detail, |
|
|
|
|
action: u.action, |
|
|
|
|
hint: u.hint, |
|
|
|
|
} |
|
|
|
|
e := u.Clone() |
|
|
|
|
e.msg = fmt.Sprintf(m, args...) |
|
|
|
|
return e |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Hint - Replace the current error's message
|
|
|
|
|
func (u Err) Hint(m string, args ...interface{}) Err { |
|
|
|
|
e := u.Clone() |
|
|
|
|
e.hint = fmt.Sprintf(m, args...) |
|
|
|
|
return e |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ErrFn function wrapper
|
|
|
|
|