summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-errors/v2/standard.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/codeberg.org/gruf/go-errors/v2/standard.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/codeberg.org/gruf/go-errors/v2/standard.go')
-rw-r--r--vendor/codeberg.org/gruf/go-errors/v2/standard.go82
1 files changed, 0 insertions, 82 deletions
diff --git a/vendor/codeberg.org/gruf/go-errors/v2/standard.go b/vendor/codeberg.org/gruf/go-errors/v2/standard.go
deleted file mode 100644
index e1d7d1440..000000000
--- a/vendor/codeberg.org/gruf/go-errors/v2/standard.go
+++ /dev/null
@@ -1,82 +0,0 @@
-package errors
-
-import (
- "errors"
-)
-
-// See: errors.Is().
-func Is(err error, target error) bool { return errors.Is(err, target) }
-
-// IsV2 calls Is(err, target) for each target within targets.
-func IsV2(err error, targets ...error) bool {
- for _, target := range targets {
- if Is(err, target) {
- return true
- }
- }
- return false
-}
-
-// See: errors.As().
-func As(err error, target any) bool { return errors.As(err, target) }
-
-// AsV2 is functionally similar to As(), instead
-// leveraging generics to handle allocation and
-// returning of a concrete generic parameter type.
-func AsV2[Type any](err error) Type {
- var t Type
- var ok bool
- errs := []error{err}
- for len(errs) > 0 {
- // Pop next error to check.
- err := errs[len(errs)-1]
- errs = errs[:len(errs)-1]
-
- // Check direct type.
- t, ok = err.(Type)
- if ok {
- return t
- }
-
- // Look for .As() support.
- as, ok := err.(interface {
- As(target any) bool
- })
-
- if ok {
- // Attempt .As().
- if as.As(&t) {
- return t
- }
- }
-
- // Try unwrap errors.
- switch u := err.(type) {
- case interface{ Unwrap() error }:
- errs = append(errs, u.Unwrap())
- case interface{ Unwrap() []error }:
- errs = append(errs, u.Unwrap()...)
- }
- }
- return t
-}
-
-// See: errors.Unwrap().
-func Unwrap(err error) error { return errors.Unwrap(err) }
-
-// UnwrapV2 is functionally similar to Unwrap(), except that
-// it also handles the case of interface{ Unwrap() []error }.
-func UnwrapV2(err error) []error {
- switch u := err.(type) {
- case interface{ Unwrap() error }:
- if e := u.Unwrap(); err != nil {
- return []error{e}
- }
- case interface{ Unwrap() []error }:
- return u.Unwrap()
- }
- return nil
-}
-
-// See: errors.Join().
-func Join(errs ...error) error { return errors.Join(errs...) }