// Code generated by MockGen. DO NOT EDIT.
// Source: limiter.go

// Package limiter is a generated GoMock package.
package limiter

import (
	context "context"
	reflect "reflect"

	gomock "github.com/golang/mock/gomock"
)

// MockLimiter is a mock of Limiter interface.
type MockLimiter struct {
	ctrl     *gomock.Controller
	recorder *MockLimiterMockRecorder
}

// MockLimiterMockRecorder is the mock recorder for MockLimiter.
type MockLimiterMockRecorder struct {
	mock *MockLimiter
}

// NewMockLimiter creates a new mock instance.
func NewMockLimiter(ctrl *gomock.Controller) *MockLimiter {
	mock := &MockLimiter{ctrl: ctrl}
	mock.recorder = &MockLimiterMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockLimiter) EXPECT() *MockLimiterMockRecorder {
	return m.recorder
}

// Allow mocks base method.
func (m *MockLimiter) Allow(ctx context.Context, key string, opts ...AllowOptionFunc) (bool, error) {
	m.ctrl.T.Helper()
	varargs := []interface{}{ctx, key}
	for _, a := range opts {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Allow", varargs...)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Allow indicates an expected call of Allow.
func (mr *MockLimiterMockRecorder) Allow(ctx, key interface{}, opts ...interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]interface{}{ctx, key}, opts...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Allow", reflect.TypeOf((*MockLimiter)(nil).Allow), varargs...)
}

// MockParallelLimiter is a mock of ParallelLimiter interface.
type MockParallelLimiter struct {
	ctrl     *gomock.Controller
	recorder *MockParallelLimiterMockRecorder
}

// MockParallelLimiterMockRecorder is the mock recorder for MockParallelLimiter.
type MockParallelLimiterMockRecorder struct {
	mock *MockParallelLimiter
}

// NewMockParallelLimiter creates a new mock instance.
func NewMockParallelLimiter(ctrl *gomock.Controller) *MockParallelLimiter {
	mock := &MockParallelLimiter{ctrl: ctrl}
	mock.recorder = &MockParallelLimiterMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockParallelLimiter) EXPECT() *MockParallelLimiterMockRecorder {
	return m.recorder
}

// Allow mocks base method.
func (m *MockParallelLimiter) Allow(ctx context.Context, key string, opts ...AllowOptionFunc) (bool, error) {
	m.ctrl.T.Helper()
	varargs := []interface{}{ctx, key}
	for _, a := range opts {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Allow", varargs...)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Allow indicates an expected call of Allow.
func (mr *MockParallelLimiterMockRecorder) Allow(ctx, key interface{}, opts ...interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]interface{}{ctx, key}, opts...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Allow", reflect.TypeOf((*MockParallelLimiter)(nil).Allow), varargs...)
}

// Finish mocks base method.
func (m *MockParallelLimiter) Finish(ctx context.Context, key string) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Finish", ctx, key)
}

// Finish indicates an expected call of Finish.
func (mr *MockParallelLimiterMockRecorder) Finish(ctx, key interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Finish", reflect.TypeOf((*MockParallelLimiter)(nil).Finish), ctx, key)
}
