summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-errors/errors.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/codeberg.org/gruf/go-errors/errors.go')
-rw-r--r--vendor/codeberg.org/gruf/go-errors/errors.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/vendor/codeberg.org/gruf/go-errors/errors.go b/vendor/codeberg.org/gruf/go-errors/errors.go
index 283bdb098..b1b41bf02 100644
--- a/vendor/codeberg.org/gruf/go-errors/errors.go
+++ b/vendor/codeberg.org/gruf/go-errors/errors.go
@@ -105,6 +105,25 @@ func Data(err error) ErrorData {
return nil
}
+// UnwrapAll fully unwraps an error stack to produce a string output.
+func UnwrapAll(err error) string {
+ if err == nil {
+ return ""
+ }
+
+ // Start error output
+ out := err.Error()
+ err = Unwrap(err)
+
+ // Unwrap and append each
+ for err != nil {
+ out += ": " + err.Error()
+ err = Unwrap(err)
+ }
+
+ return out
+}
+
// stringError is the simplest ErrorContext implementation
type stringError string