goutils/other/other.go

32 lines
982 B
Go

package other
import "fmt"
// 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.
// Example: goroutines
func OutputIntoChannel[T any](out T, target chan T) {
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 {
if err != nil {
panic(err)
}
return val
}
// IntoPointer returns a pointer to the given value
func IntoPointer[T any](val T) *T {
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)
}