aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/stub/errors.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-03-17 16:09:14 +0900
committerOphestra <cat@gensokyo.uk>2026-03-17 16:09:14 +0900
commitbac583f89edd1360150143ff51f7264c01aa69ec (patch)
tree47914efe1ae9fae256ef93725097bdb9255c03d5 /internal/stub/errors.go
parent722989c68256469963aee963bed9c6ab4bf55b67 (diff)
internal/stub: move from container
This package solves a very specific stubbing use case, in a less than elegant manner. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/stub/errors.go')
-rw-r--r--internal/stub/errors.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/internal/stub/errors.go b/internal/stub/errors.go
new file mode 100644
index 00000000..c89149be
--- /dev/null
+++ b/internal/stub/errors.go
@@ -0,0 +1,28 @@
+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 {
+ var u UniqueError
+ if !errors.As(target, &u) {
+ return false
+ }
+ return e == u
+}