Files
fm_be/internal/queue/errors.go
2026-07-16 22:16:45 +07:00

52 lines
765 B
Go

package queue
import "errors"
type permanentError struct {
err error
}
func (e permanentError) Error() string {
return e.err.Error()
}
func (e permanentError) Unwrap() error {
return e.err
}
type transientError struct {
err error
}
func (e transientError) Error() string {
return e.err.Error()
}
func (e transientError) Unwrap() error {
return e.err
}
func Permanent(err error) error {
if err == nil {
return nil
}
return permanentError{err: err}
}
func Transient(err error) error {
if err == nil {
return nil
}
return transientError{err: err}
}
func IsPermanent(err error) bool {
var target permanentError
return errors.As(err, &target)
}
func IsTransient(err error) bool {
var target transientError
return errors.As(err, &target)
}