diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-06-25 03:59:52 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-06-25 04:57:41 +0900 |
| commit | 87e008d56de974947ebb99c2cc40b25d3c2cf43e (patch) | |
| tree | 31791911e5226d6ec04e3fac7d91b0bf53e63aa5 /internal/fmsg/errors.go | |
| parent | 399207321265307bb15f37d867f9370cd51c82a8 (diff) | |
treewide: rename to hakurei
Fortify makes little sense for a container tool.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/fmsg/errors.go')
| -rw-r--r-- | internal/fmsg/errors.go | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/internal/fmsg/errors.go b/internal/fmsg/errors.go deleted file mode 100644 index bf9884f6..00000000 --- a/internal/fmsg/errors.go +++ /dev/null @@ -1,88 +0,0 @@ -package fmsg - -import ( - "fmt" - "log" - "reflect" - "strings" -) - -// baseError implements a basic error container -type baseError struct { - Err error -} - -func (e *baseError) Error() string { - return e.Err.Error() -} - -func (e *baseError) Unwrap() error { - return e.Err -} - -// BaseError implements an error container with a user-facing message -type BaseError struct { - message string - baseError -} - -// Message returns a user-facing error message -func (e *BaseError) Message() string { - return e.message -} - -// WrapError wraps an error with a corresponding message. -func WrapError(err error, a ...any) error { - if err == nil { - return nil - } - return wrapError(err, fmt.Sprintln(a...)) -} - -// WrapErrorSuffix wraps an error with a corresponding message with err at the end of the message. -func WrapErrorSuffix(err error, a ...any) error { - if err == nil { - return nil - } - return wrapError(err, fmt.Sprintln(append(a, err)...)) -} - -// WrapErrorFunc wraps an error with a corresponding message returned by f. -func WrapErrorFunc(err error, f func(err error) string) error { - if err == nil { - return nil - } - return wrapError(err, f(err)) -} - -func wrapError(err error, message string) *BaseError { - return &BaseError{message, baseError{err}} -} - -var ( - baseErrorType = reflect.TypeFor[*BaseError]() -) - -func AsBaseError(err error, target **BaseError) bool { - v := reflect.ValueOf(err) - if !v.CanConvert(baseErrorType) { - return false - } - - *target = v.Convert(baseErrorType).Interface().(*BaseError) - return true -} - -func PrintBaseError(err error, fallback string) { - var e *BaseError - - if AsBaseError(err, &e) { - if msg := e.Message(); strings.TrimSpace(msg) != "" { - log.Print(msg) - return - } - Verbose("*"+fallback, err) - return - } - log.Println(fallback, err) -} |
