func (_d *TestInterfaceWithRateLimit) NoParamsOrResults() {
	<-_d._ticks
	_d._base.NoParamsOrResults()
	return
}
NoParamsOrResults implements TestInterface
package templatestests
import (
	"context"
	"time"
)
type TestInterfaceWithRateLimit struct {
	_base  TestInterface
	_ticks chan time.Time
}
func NewTestInterfaceWithRateLimit(base TestInterface, burst int, rps float64) *TestInterfaceWithRateLimit {
	d := &TestInterfaceWithRateLimit{
		_base:  base,
		_ticks: make(chan time.Time, burst),
	}
	now := time.Now()
	for i := 0; i < burst; i++ {
		d._ticks <- now
	}
	delay := time.Duration(float64(time.Second) / rps)
	go func() {
		for t := range time.Tick(delay) {
			d._ticks <- t
		}
	}()
	return d
}
func (_d *TestInterfaceWithRateLimit) Channels(chA chan bool, chB chan<- bool, chanC <-chan bool) {
	<-_d._ticks
	_d._base.Channels(chA, chB, chanC)
	return
}
func (_d *TestInterfaceWithRateLimit) F(ctx context.Context, a1 string, a2 ...string) (result1 string, result2 string, err error) {
	select {
	case <-ctx.Done():
		err = ctx.Err()
		return
	case <-_d._ticks:
	}
	return _d._base.F(ctx, a1, a2...)
}
func (_d *TestInterfaceWithRateLimit) NoError(s1 string) (s2 string) {
	<-_d._ticks
	return _d._base.NoError(s1)
}