func newJobInstance[T any]()

in job_instance.go [54:72]


func newJobInstance[T any](jd *JobDefinition[T], input T, jobInstanceOptions ...JobOptionPreparer) *JobInstance[T] {
	ji := &JobInstance[T]{
		Definition: jd,
		input:      input,
		steps:      map[string]StepInstanceMeta{},
		stepsDag:   graph.NewGraph(connectStepInstance),
		jobOptions: &JobExecutionOptions{},
	}

	for _, decorator := range jobInstanceOptions {
		ji.jobOptions = decorator(ji.jobOptions)
	}

	if ji.jobOptions.Id == "" {
		ji.jobOptions.Id = uuid.New().String()
	}

	return ji
}