func bindKeyword()

in pkg/genlib/generator_interface.go [372:397]


func bindKeyword(fieldCfg ConfigField, field Field, fieldMap map[string]any) error {
	if len(fieldCfg.Enum) > 0 {
		var emitFNotReturn emitFNotReturn
		emitFNotReturn = func(state *genState, buf *bytes.Buffer) error {
			idx := customRand.Intn(len(fieldCfg.Enum))
			buf.WriteString(fieldCfg.Enum[idx])
			return nil
		}

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

		return bindJoinRand(field, totWords, joiner, fieldMap)
	} else {
		var emitFNotReturn emitFNotReturn
		emitFNotReturn = func(state *genState, buf *bytes.Buffer) error {
			// randomdata.Adjective() + randomdata.Noun() -> 364 * 527 (~190k) different values
			buf.WriteString(randomdata.Adjective() + randomdata.Noun())
			return nil
		}

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