Source File
runner.go
Belonging Package
go.pact.im/x/process
package processimport ()// Callback is a type alias for the function passed to Runner’s Run method. See// [Runner] documentation for more details.type Callback = func(context.Context) error// Runner defines an entrypoint for the process that should be considered// running and ready for use when the Run’s method callback is called.//// Runner performs graceful shutdown when the callback returns. In this case,// the context is not canceled and the process may access external resources,// e.g. perform some network requests and persist state to database. Otherwise// a context cancellation is used to force shutdown.type Runner interface {// Run executes the process. Callback function is called when the// process has been initialized and began execution. The process is// interrupted if the callback returns or the given context expires.// On termination the context passed to the callback is canceled.//// To make debugging easier, callback runs in the same goroutine where// Run was invoked. Note though that this behavior currently is not// supported by all existing Run implementations.//// It is safe to assume that callback is called at most once per Run// invocation.Run(ctx context.Context, callback Callback) error}// RunnerFunc is a function that implements the Runner interface.type RunnerFunc func(context.Context, Callback) error// Run implements the Runner interface.func ( RunnerFunc) ( context.Context, Callback) error {return (, )}// nopRunner is a no-op Runner implementation.type nopRunner struct{}// Nop returns a Runner instance that performs no operations and returns when// the callback does.func () Runner {return (*nopRunner)(nil)}// Run implements the Runner interface.func (*nopRunner) ( context.Context, Callback) error {return ()}// prefixedErrorRunner is a Runner implementation that prefixes an error with// the set string on failure.type prefixedErrorRunner struct {runner Runnerprefix string}// PrefixedError returns a process that returns an error prefixed with the given// prefix string on failure.func ( string, Runner) Runner {return &prefixedErrorRunner{runner: ,prefix: ,}}// Run implements the Runner interface.func ( *prefixedErrorRunner) ( context.Context, Callback) error {:= .runner.Run(, )if == nil {return nil}return fmt.Errorf("%s: %w", .prefix, )}
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64)