func NewPipeline(actions ...*Action) *Pipeline {
	// Actions are usually global functions, copying them
	// guarantees each copy has an isolated Result.
	newActions := make([]*Action, len(actions))
	for i, action := range actions {
		newAction := &Action{
			Name:      action.Name,
			Forward:   action.Forward,
			Backward:  action.Backward,
			MinParams: action.MinParams,
			OnError:   action.OnError,
		}
		newActions[i] = newAction
	}
	return &Pipeline{actions: newActions}

}
func NewPipeline(actions ...*Action) *Pipeline {
	
	
	newActions := make([]*Action, len(actions))
	for i, action := range actions {
		newAction := &Action{
			Name:      action.Name,
			Forward:   action.Forward,
			Backward:  action.Backward,
			MinParams: action.MinParams,
			OnError:   action.OnError,
		}
		newActions[i] = newAction
	}
	return &Pipeline{actions: newActions}

}
func NewPipeline ( actions ... * Action ) * Pipeline { // Actions are usually global functions, copying them // guarantees each copy has an isolated Result. newActions := make ( [ ] * Action , len ( actions ) ) for i , action := range actions { newAction := & Action { Name : action . Name , Forward : action . Forward , Backward : action . Backward , MinParams : action . MinParams , OnError : action . OnError , } newActions [ i ] = newAction } return & Pipeline { actions : newActions } }
// NewPipeline creates a new pipeline instance with the given list of actions.
NewPipeline creates a new pipeline instance with the given list of actions .