all repos — postern

@ e38fd17b290eded83d0d6080554cb90d4d911b31

Modern mail management

clone
git clone https:///postern.git

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}