in pkg/genlib/generator_interface.go [575:650]
func bindLong(fieldCfg ConfigField, field Field, fieldMap map[string]any) error {
if err := fieldCfg.ValidCounter(); err != nil {
return err
}
if fieldCfg.Counter {
var emitFNotReturn emitFNotReturn
emitFNotReturn = func(state *genState, buf *bytes.Buffer) error {
previous := int64(1)
var dummyInt int64
var dummyFunc func() int64
if previousDummyInt, ok := state.prevCache[field.Name].(int64); ok {
previous = previousDummyInt
}
if fieldCfg.Fuzziness <= 0 {
dummyFunc = makeIntCounterFunc(previous, field)
dummyInt = dummyFunc()
} else {
dummyInt = fuzzyIntCounter(previous, fieldCfg.Fuzziness)
}
state.prevCache[field.Name] = dummyInt
v := make([]byte, 0, 32)
v = strconv.AppendInt(v, dummyInt, 10)
buf.Write(v)
return nil
}
fieldMap[field.Name] = emitFNotReturn
return nil
}
dummyFunc := makeIntFunc(fieldCfg, field)
if fieldCfg.Fuzziness <= 0 {
var emitFNotReturn emitFNotReturn
emitFNotReturn = func(state *genState, buf *bytes.Buffer) error {
v := make([]byte, 0, 32)
v = strconv.AppendInt(v, dummyFunc(), 10)
buf.Write(v)
return nil
}
fieldMap[field.Name] = emitFNotReturn
return nil
}
min, _ := fieldCfg.Range.MinAsFloat64()
max, _ := fieldCfg.Range.MaxAsFloat64()
var emitFNotReturn emitFNotReturn
emitFNotReturn = func(state *genState, buf *bytes.Buffer) error {
var dummyInt int64
if previousDummyInt, ok := state.prevCache[field.Name].(int64); ok {
if previousDummyInt == 0 {
previousDummyInt = 1
}
dummyInt = fuzzyInt(previousDummyInt, fieldCfg.Fuzziness, min, max)
} else {
dummyInt = dummyFunc()
}
state.prevCache[field.Name] = dummyInt
v := make([]byte, 0, 32)
v = strconv.AppendInt(v, dummyInt, 10)
buf.Write(v)
return nil
}
fieldMap[field.Name] = emitFNotReturn
return nil
}