func()

in branch.go [172:201]


func (s *SwitchBranch[T]) AddToWorkflow() map[Steper]*StepConfig {
	steps := Steps()
	cases := []Steper{}
	for step := range s.CasesToCheck {
		step := step
		cases = append(cases, step)
		steps.Merge(
			Steps(step).
				DependsOn(s.Target).
				When(s.isCase(step)).
				BeforeStep(func(ctx context.Context, step Steper) (context.Context, error) {
					for c, check := range s.CasesToCheck {
						if HasStep(step, c) && check.Error != nil {
							return ctx, check.Error
						}
					}
					return ctx, nil
				}),
		)
	}
	if s.DefaultStep != nil {
		steps.Merge(
			Steps(s.DefaultStep...).
				DependsOn(s.Target).
				DependsOn(cases...).
				When(s.isDefault),
		)
	}
	return steps.AddToWorkflow()
}