summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-errors/v2/errors.go
blob: 18f7809945ab97fa69fe91e3db013d06128ae81b (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
26
27
28
29
30
31
32
33
34
35
36
package errors

import (
	"fmt"
)

// New returns a new error created from message.
func New(msg string) error {
	return create(msg, nil)
}

// Newf returns a new error created from message format and args.
func Newf(msgf string, args ...interface{}) error {
	return create(fmt.Sprintf(msgf, args...), nil)
}

// Wrap will wrap supplied error within a new error created from message.
func Wrap(err error, msg string) error {
	return create(msg, err)
}

// Wrapf will wrap supplied error within a new error created from message format and args.
func Wrapf(err error, msgf string, args ...interface{}) error {
	return create(fmt.Sprintf(msgf, args...), err)
}

// Stacktrace fetches first stored stacktrace of callers from error chain.
func Stacktrace(err error) Callers {
	var e interface {
		Stacktrace() Callers
	}
	if !As(err, &e) {
		return nil
	}
	return e.Stacktrace()
}