func bindKeywordWithReturn()

in pkg/genlib/generator_interface.go [844:867]


func bindKeywordWithReturn(fieldCfg ConfigField, field Field, fieldMap map[string]any) error {
	if len(fieldCfg.Enum) > 0 {
		var emitF emitF
		emitF = func(state *genState) any {
			idx := customRand.Intn(len(fieldCfg.Enum))
			return fieldCfg.Enum[idx]
		}

		fieldMap[field.Name] = emitF
	} else if len(field.Example) > 0 {
		totWords, joiner := totWordsAndJoiner(field.Example)

		return bindJoinRandWithReturn(field, totWords, joiner, fieldMap)
	} else {
		var emitF emitF
		emitF = func(state *genState) any {
			// randomdata.Adjective() + randomdata.Noun() -> 364 * 527 (~190k) different values
			return randomdata.Adjective() + randomdata.Noun()
		}

		fieldMap[field.Name] = emitF
	}
	return nil
}