internal/model/errors.go (view raw)
1package model
2
3import (
4 "errors"
5 "fmt"
6)
7
8var ErrMissingFromHeader = errors.New("missing From header")
9var ErrAlreadyExists = errors.New("already exists")
10var ErrNotFound = errors.New("not found")
11var ErrInvalidInput = errors.New("invalid input")
12
13// Wrap solves the `defer r.Close()` issue by returning the error value to the caller.
14// Idea used from: https://cs.opensource.google/go/x/pkgsite/+/refs/tags/v0.5.0:internal/derrors/derrors.go;l=240
15func Wrap(errFunc func() error, errp *error, format string, args ...any) {
16 if errFunc == nil {
17 return
18 }
19
20 tmpErr := errFunc()
21 if tmpErr != nil {
22 *errp = fmt.Errorf("%s: %w", fmt.Sprintf(format, args...), tmpErr)
23 }
24}