package model import ( "errors" "fmt" ) var ErrMissingFromHeader = errors.New("missing From header") var ErrAlreadyExists = errors.New("already exists") var ErrNotFound = errors.New("not found") var ErrInvalidInput = errors.New("invalid input") // Wrap solves the `defer r.Close()` issue by returning the error value to the caller. // Idea used from: https://cs.opensource.google/go/x/pkgsite/+/refs/tags/v0.5.0:internal/derrors/derrors.go;l=240 func Wrap(errFunc func() error, errp *error, format string, args ...any) { if errFunc == nil { return } tmpErr := errFunc() if tmpErr != nil { *errp = fmt.Errorf("%s: %w", fmt.Sprintf(format, args...), tmpErr) } }