Add error formatter and docs

This commit is contained in:
Melody Becker 2025-03-04 13:57:51 +01:00
parent 18bf623114
commit d199b14dd4
Signed by: mstar
SSH key fingerprint: SHA256:9VAo09aaVNTWKzPW7Hq2LW+ox9OdwmTSHRoD4mlz1yI

View file

@ -1,5 +1,7 @@
package other package other
import "fmt"
// OutputIntoChannel takes a singular return value and sends it into the target channel. // OutputIntoChannel takes a singular return value and sends it into the target channel.
// This is a wrapper for functions where a value can't be collected from directly. // This is a wrapper for functions where a value can't be collected from directly.
// Example: goroutines // Example: goroutines
@ -7,6 +9,10 @@ func OutputIntoChannel[T any](out T, target chan T) {
target <- out target <- out
} }
// Must is a quick wrapper to ensure that a function exits without error.
// If err is not nil, it panics. Otherwise val is returned.
// The intended use is something like Must(someFunc()), where someFunc
// has the signature someFunc() (T, error), with T being whatever type needed
func Must[T any](val T, err error) T { func Must[T any](val T, err error) T {
if err != nil { if err != nil {
panic(err) panic(err)
@ -14,6 +20,13 @@ func Must[T any](val T, err error) T {
return val return val
} }
// IntoPointer returns a pointer to the given value
func IntoPointer[T any](val T) *T { func IntoPointer[T any](val T) *T {
return &val return &val
} }
// Error formats error messages to follow a common convention of
// "source: message: wrapped error"
func Error(source, message string, err error) error {
return fmt.Errorf("%s: %s: %w", source, message, err)
}