feat: Initial
This commit is contained in:
commit
f0abca60db
26 files changed
+1112
No files matched your search
@@ -0,0 +1,69 @@
|
||||
package errors
|
||||
|
||||
import "fmt"
|
||||
|
||||
type UniverseErrorBuilder struct {
|
||||
t *UniverseErrorType
|
||||
message string
|
||||
cause error
|
||||
fields map[interface{}]any
|
||||
stack ErrorStack
|
||||
}
|
||||
|
||||
func Builder() *UniverseErrorBuilder {
|
||||
return &UniverseErrorBuilder{
|
||||
stack: CaptureStackIfEnabled(),
|
||||
}
|
||||
}
|
||||
|
||||
func BuilderEmpty() *UniverseErrorBuilder {
|
||||
return &UniverseErrorBuilder{}
|
||||
}
|
||||
|
||||
func (b *UniverseErrorBuilder) Message(message string) *UniverseErrorBuilder {
|
||||
b.message = message
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *UniverseErrorBuilder) Messagef(format string, args ...interface{}) *UniverseErrorBuilder {
|
||||
b.message = fmt.Sprintf(format, args...)
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *UniverseErrorBuilder) Type(typeName *UniverseErrorType) *UniverseErrorBuilder {
|
||||
b.t = typeName
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *UniverseErrorBuilder) Cause(cause error) *UniverseErrorBuilder {
|
||||
b.cause = cause
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *UniverseErrorBuilder) CaptureStackIfEnabled() *UniverseErrorBuilder {
|
||||
b.stack = CaptureStackIfEnabled()
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *UniverseErrorBuilder) CaptureStack() *UniverseErrorBuilder {
|
||||
b.stack = CaptureStack()
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *UniverseErrorBuilder) WithField(key interface{}, value interface{}) *UniverseErrorBuilder {
|
||||
if b.fields == nil {
|
||||
b.fields = make(map[interface{}]any)
|
||||
}
|
||||
b.fields[key] = value
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *UniverseErrorBuilder) Build() UniverseError {
|
||||
return &UniverseErrorImpl{
|
||||
msg: b.message,
|
||||
cause: b.cause,
|
||||
fields: b.fields,
|
||||
stack: b.stack,
|
||||
t: b.t,
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user