56de2f1363
Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
28 lines
534 B
Go
28 lines
534 B
Go
package logicerr
|
|
|
|
import "errors"
|
|
|
|
// Logical is a wrapper for logical errors.
|
|
type Logical struct {
|
|
err error
|
|
}
|
|
|
|
// New returns simple error with a provided error message.
|
|
func New(msg string) Logical {
|
|
return Wrap(errors.New(msg))
|
|
}
|
|
|
|
// Error implements the error interface.
|
|
func (e Logical) Error() string {
|
|
return e.err.Error()
|
|
}
|
|
|
|
// Wrap wraps arbitrary error into a logical one.
|
|
func Wrap(err error) Logical {
|
|
return Logical{err: err}
|
|
}
|
|
|
|
// Unwrap returns underlying error.
|
|
func (e Logical) Unwrap() error {
|
|
return e.err
|
|
}
|