From 084cd84f36a1d608541b4aa4e1e95334395d8953 Mon Sep 17 00:00:00 2001 From: Ophestra Umiker Date: Wed, 16 Oct 2024 01:38:59 +0900 Subject: app: port app to use the system package This commit does away with almost all baggage left over from the Ego port. Error wrapping also got simplified. All API changes happens to be internal which means no changes to main except renaming of the BaseError type. Signed-off-by: Ophestra Umiker --- internal/app/error.go | 51 --------------------------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 internal/app/error.go (limited to 'internal/app/error.go') diff --git a/internal/app/error.go b/internal/app/error.go deleted file mode 100644 index 7c18a89e..00000000 --- a/internal/app/error.go +++ /dev/null @@ -1,51 +0,0 @@ -package app - -import ( - "fmt" - "reflect" -) - -// 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 -} - -func wrapError(err error, a ...any) *BaseError { - return &BaseError{ - message: fmt.Sprintln(a...), - baseError: 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 -} -- cgit v1.3.1