func makeDynamicStub()

in pkg/genlib/generator_interface.go [798:820]


func makeDynamicStub(boundF any) emitFNotReturn {
	return func(state *genState, buf *bytes.Buffer) error {
		v := state.pool.Get()
		tmp := v.(*bytes.Buffer)
		tmp.Reset()
		defer state.pool.Put(tmp)

		// Fire the bound function, write into temp buffer
		err := boundF.(emitFNotReturn)(state, tmp)
		if err != nil {
			return err
		}

		// If bound function did not write for some reason; abort
		if tmp.Len() == 0 {
			return nil
		}

		// ok, formatted as expected, swap it out the payload
		buf.Write(tmp.Bytes())
		return nil
	}
}