| 12345678910111213141516171819202122232425262728293031 |
- package main
- import (
- "errors"
- "fmt"
- )
- var (
- ErrValidation = errors.New("validation failed")
- )
- type stepErr struct {
- step string
- msg string
- cause error
- }
- func (s *stepErr) Error() string {
- return fmt.Sprintf("Step: %q: %s: Cause: %v", s.step, s.msg, s.cause)
- }
- func (s *stepErr) Is(target error) bool {
- var t *stepErr
- if ok := errors.As(target, &t); !ok {
- return false
- }
- return t.step == s.step
- }
- func (s *stepErr) Unwrap() error {
- return s.cause
- }
|