feat: Initial
This commit is contained in:
commit
f0abca60db
26 files changed
+1112
No files matched your search
@@ -0,0 +1,72 @@
|
||||
package errors
|
||||
|
||||
type UniverseError interface {
|
||||
Error() string
|
||||
|
||||
Type() *UniverseErrorType
|
||||
Message() string
|
||||
Cause() error
|
||||
StackTrace() ErrorStack
|
||||
|
||||
GetAny(key interface{}) any
|
||||
With(key interface{}, value any) UniverseError
|
||||
Builder() *UniverseErrorBuilder
|
||||
}
|
||||
|
||||
type UniverseErrorImpl struct {
|
||||
msg string
|
||||
cause error
|
||||
t *UniverseErrorType
|
||||
stack ErrorStack
|
||||
fields map[interface{}]any
|
||||
}
|
||||
|
||||
func (e *UniverseErrorImpl) Type() *UniverseErrorType {
|
||||
return e.t
|
||||
}
|
||||
|
||||
func (e *UniverseErrorImpl) StackTrace() ErrorStack {
|
||||
return e.stack
|
||||
}
|
||||
|
||||
func (e *UniverseErrorImpl) With(field interface{}, value any) UniverseError {
|
||||
if e.fields == nil {
|
||||
e.fields = map[interface{}]any{}
|
||||
}
|
||||
e.fields[field] = value
|
||||
return e
|
||||
}
|
||||
|
||||
func (e *UniverseErrorImpl) Builder() *UniverseErrorBuilder {
|
||||
return &UniverseErrorBuilder{
|
||||
t: e.t,
|
||||
message: e.msg,
|
||||
cause: e.cause,
|
||||
fields: e.fields,
|
||||
stack: e.stack,
|
||||
}
|
||||
}
|
||||
|
||||
func (e *UniverseErrorImpl) Error() string {
|
||||
return ErrorToString(e)
|
||||
}
|
||||
|
||||
func (e *UniverseErrorImpl) Unwrap() error {
|
||||
return e.cause
|
||||
}
|
||||
|
||||
func (e *UniverseErrorImpl) Message() string {
|
||||
return e.msg
|
||||
}
|
||||
|
||||
func (e *UniverseErrorImpl) Cause() error {
|
||||
return e.cause
|
||||
}
|
||||
|
||||
func (e *UniverseErrorImpl) GetAny(field interface{}) any {
|
||||
if e.fields == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return e.fields[field]
|
||||
}
|
||||
Reference in new issue
Block a user