Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActionFunc ¶
type ActionFunc func() Result
ActionFunc is the func that contains your business logic.
type Logger ¶
type Logger interface {
// Log is expected to write the given message to a logging framework or similar.
// The name contains the step's name.
Log(message, name string)
}
Logger is a simple interface that enables logging certain actions with your favourite logging framework.
type Pipeline ¶
type Pipeline struct {
// contains filtered or unexported fields
}
Pipeline holds and runs intermediate actions, called "steps".
func NewPipeline ¶
func NewPipeline() *Pipeline
NewPipeline returns a new Pipeline instance that doesn't log anything.
func NewPipelineWithLogger ¶
NewPipelineWithLogger returns a new Pipeline instance with the given logger that shouldn't be nil.
func (*Pipeline) AddStep ¶
AddStep appends the given step to the Pipeline at the end and returns itself.
func (*Pipeline) AsNestedStep ¶
AsNestedStep converts the Pipeline instance into a Step that can be used in other pipelines. The logger and abort handler are passed to the nested pipeline.
func (*Pipeline) Run ¶
Run executes the pipeline and returns the result. Steps are executed sequentially as they were added to the Pipeline. If a Step returns a Result with a non-nil error, the Pipeline is aborted its Result contains the affected step's error.
func (*Pipeline) WithNestedSteps ¶ added in v0.4.0
WithNestedSteps is similar to AsNestedStep but it accepts the steps given directly as parameters.
type Result ¶
type Result struct {
// Err contains the step's returned error, nil otherwise.
Err error
// Name is an optional identifier for a result.
// ActionFunc may set this property before returning to help an ResultHandler with further processing.
Name string
}
Result is the object that is returned after each step and after running a pipeline.
func (Result) IsSuccessful ¶
IsSuccessful returns true if the contained error is nil.
type ResultHandler ¶ added in v0.3.0
ResultHandler is a func that gets called when a step's ActionFunc has finished with any Result.
type Step ¶
type Step struct {
// Name describes the step's human-readable name.
// It has no other uses other than easily identifying a step for debugging or logging.
Name string
// F is the ActionFunc assigned to a pipeline Step.
// This is required.
F ActionFunc
// H is the ResultHandler assigned to a pipeline Step.
// This is optional and it will be called in any case if it is set after F completed.
// Use cases could be logging, updating a GUI or handle errors while continuing the pipeline.
// The function may return nil even if the Result contains an error, in which case the pipeline will continue.
// This function is called before the next step's F is invoked.
H ResultHandler
}
Step is an intermediary action and part of a Pipeline.
func NewStep ¶
func NewStep(name string, action ActionFunc) Step
NewStep returns a new Step with given name and action.
func (Step) WithResultHandler ¶ added in v0.3.0
func (s Step) WithResultHandler(handler ResultHandler) Step
WithResultHandler sets the ResultHandler of this specific step and returns the step itself.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package parallel extends the command-pipeline core with concurrency steps.
|
Package parallel extends the command-pipeline core with concurrency steps. |
|
Package predicate provides functions that wrap existing actions but executes them only on conditions ("predicates").
|
Package predicate provides functions that wrap existing actions but executes them only on conditions ("predicates"). |