mirror of
https://github.com/foomo/fender.git
synced 2026-04-17 02:44:31 +00:00
41 lines
578 B
Go
41 lines
578 B
Go
package fender
|
|
|
|
// Error type
|
|
type Error struct {
|
|
Fields FieldErrors
|
|
}
|
|
|
|
var Err = &Error{}
|
|
|
|
// NewError constructor
|
|
func NewError(fields FieldErrors) *Error {
|
|
return &Error{
|
|
Fields: fields,
|
|
}
|
|
}
|
|
|
|
// Is interface
|
|
func (e *Error) Is(err error) bool {
|
|
if err == nil {
|
|
return false
|
|
}
|
|
_, ok := err.(*Error) //nolint:errorlint
|
|
return ok
|
|
}
|
|
|
|
// Error interface
|
|
func (e *Error) Error() string {
|
|
return e.Fields.String()
|
|
}
|
|
|
|
func (e *Error) Errors() FieldErrors {
|
|
return e.Fields
|
|
}
|
|
|
|
func (e *Error) First() error {
|
|
for _, err := range e.Fields {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|