// Copyright 2014 The go-ethereum Authors
// This file is part of the go-ethereum library.
//
// The go-ethereum library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// The go-ethereum library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.

// Code generated by MockGen. DO NOT EDIT.
// Source: topicsdb.go
//
// Generated by this command:
//
//	mockgen -source=topicsdb.go -package=topicsdb -destination=topicsdb_mock.go
//

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

import (
	context "context"
	reflect "reflect"

	idx "github.com/Fantom-foundation/lachesis-base/inter/idx"
	common "github.com/ethereum/go-ethereum/common"
	types "github.com/ethereum/go-ethereum/core/types"
	gomock "go.uber.org/mock/gomock"
)

// MockIndex is a mock of Index interface.
type MockIndex struct {
	ctrl     *gomock.Controller
	recorder *MockIndexMockRecorder
	isgomock struct{}
}

// MockIndexMockRecorder is the mock recorder for MockIndex.
type MockIndexMockRecorder struct {
	mock *MockIndex
}

// NewMockIndex creates a new mock instance.
func NewMockIndex(ctrl *gomock.Controller) *MockIndex {
	mock := &MockIndex{ctrl: ctrl}
	mock.recorder = &MockIndexMockRecorder{mock}
	return mock
}

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

// Close mocks base method.
func (m *MockIndex) Close() {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Close")
}

// Close indicates an expected call of Close.
func (mr *MockIndexMockRecorder) Close() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockIndex)(nil).Close))
}

// FindInBlocks mocks base method.
func (m *MockIndex) FindInBlocks(ctx context.Context, from, to idx.Block, pattern [][]common.Hash) ([]*types.Log, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "FindInBlocks", ctx, from, to, pattern)
	ret0, _ := ret[0].([]*types.Log)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// FindInBlocks indicates an expected call of FindInBlocks.
func (mr *MockIndexMockRecorder) FindInBlocks(ctx, from, to, pattern any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindInBlocks", reflect.TypeOf((*MockIndex)(nil).FindInBlocks), ctx, from, to, pattern)
}

// Push mocks base method.
func (m *MockIndex) Push(recs ...*types.Log) error {
	m.ctrl.T.Helper()
	varargs := []any{}
	for _, a := range recs {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Push", varargs...)
	ret0, _ := ret[0].(error)
	return ret0
}

// Push indicates an expected call of Push.
func (mr *MockIndexMockRecorder) Push(recs ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Push", reflect.TypeOf((*MockIndex)(nil).Push), recs...)
}

// WrapTablesAsBatched mocks base method.
func (m *MockIndex) WrapTablesAsBatched() func() {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "WrapTablesAsBatched")
	ret0, _ := ret[0].(func())
	return ret0
}

// WrapTablesAsBatched indicates an expected call of WrapTablesAsBatched.
func (mr *MockIndexMockRecorder) WrapTablesAsBatched() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WrapTablesAsBatched", reflect.TypeOf((*MockIndex)(nil).WrapTablesAsBatched))
}
