aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/stub/errors.go
blob: 560bde6e8a7a3b6f03999e1a15b5c36744d75809 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package stub

import (
	"errors"
	"strconv"
)

var (
	ErrCheck = errors.New("one or more arguments did not match")
)

// UniqueError is an error that only equivalates to another [UniqueError] with
// the same magic value.
type UniqueError uintptr

func (e UniqueError) Error() string {
	return "unique error " +
		strconv.FormatUint(uint64(e), 10) +
		" injected by the test suite"
}

func (e UniqueError) Is(target error) bool {
	u, ok := errors.AsType[UniqueError](target)
	return ok && e == u
}