package httpdata import ( "errors" ) type UniverseError struct { Code Code Message string } func NewUniverseError(code Code, message string) error { return UniverseError{ Code: code, Message: message, } } func NewBadRequestError(message string) error { return UniverseError{ Code: CodeBadRequest, Message: message, } } func (err UniverseError) Error() string { if err.Message == "" { return string(err.Code) } return string(err.Code) + ": " + err.Message } func IsUniverseError(err error) bool { return errors.As(err, &UniverseError{}) } func ToUniverseError(err error, code Code, message string) error { if err == nil || IsUniverseError(err) { return err } return NewUniverseError(code, message) }