modulepackage
1.0.0
Repository: https://github.com/wavesoftware/go-ensure.git
Documentation: pkg.go.dev
# README
Ensure for Go
A simple ensure package for Golang
Use case
Writing a Go code makes a lot of repetition, regarding error checking. That's especially true for end user code like e2e tests when we expect that something will work. In other cases that's a bug and should code should panic then.
Usage
Instead of writing:
func DeployAllComponents() error {
alpha, err := deployAlpha()
if err != nil {
return errors.WithMessage(err, "unexpected error")
}
beta, err := deployBeta(alpha)
if err != nil {
return errors.WithMessage(err, "unexpected error")
}
_, err := deployGamma(beta)
if err != nil {
return errors.WithMessage(err, "unexpected error")
}
return nil
}
// execution isn't simple
err = DeployAllComponents()
if err != nil {
panic(err)
}
with this PR I can write it like:
func DeployAllComponents() {
alpha, err := deployAlpha()
ensure.NoError(err)
beta, err := deployBeta(alpha)
ensure.NoError(err)
_, err := deployGamma(beta)
ensure.NoError(err)
}
// execution is simple
DeployAllComponents()
Above is much more readable and pleasant to see.
# Functions
Error will panic if given no error, as it expected one.
ErrorWithMessage will panic if given no error, or error message don't match provided regexp.
NoError will panic if given an error, as it was unexpected.