src/server/worker/datum_set.go
func NewDatumFactory(pachClient *client.APIClient, input *pps.Input) (DatumFactory, error) {
	switch {
	case input.Pfs != nil:
		return newPFSDatumFactory(pachClient, input.Pfs)
	case input.Union != nil:
		return newUnionDatumFactory(pachClient, input.Union)
	case input.Cross != nil:
		return newCrossDatumFactory(pachClient, input.Cross)
	case input.Cron != nil:
		return newCronDatumFactory(pachClient, input.Cron)
	case input.Git != nil:
		return newGitDatumFactory(pachClient, input.Git)
	}
	return nil, fmt.Errorf("unrecognized input type")
}
func NewDatumFactory(pachClient *client.APIClient, input *pps.Input) (DatumFactory, error) {
	switch {
	case input.Pfs != nil:
		return newPFSDatumFactory(pachClient, input.Pfs)
	case input.Union != nil:
		return newUnionDatumFactory(pachClient, input.Union)
	case input.Cross != nil:
		return newCrossDatumFactory(pachClient, input.Cross)
	case input.Cron != nil:
		return newCronDatumFactory(pachClient, input.Cron)
	case input.Git != nil:
		return newGitDatumFactory(pachClient, input.Git)
	}
	return nil, fmt.Errorf("unrecognized input type")
}
// NewDatumFactory creates a datumFactory for an input.