// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/erigontech/erigon/polygon/bor (interfaces: spanReader)
//
// Generated by this command:
//
//	mockgen -typed=true -destination=./span_reader_mock.go -package=bor . spanReader
//

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

import (
	context "context"
	reflect "reflect"

	heimdall "github.com/erigontech/erigon/polygon/heimdall"
	gomock "go.uber.org/mock/gomock"
)

// MockspanReader is a mock of spanReader interface.
type MockspanReader struct {
	ctrl     *gomock.Controller
	recorder *MockspanReaderMockRecorder
	isgomock struct{}
}

// MockspanReaderMockRecorder is the mock recorder for MockspanReader.
type MockspanReaderMockRecorder struct {
	mock *MockspanReader
}

// NewMockspanReader creates a new mock instance.
func NewMockspanReader(ctrl *gomock.Controller) *MockspanReader {
	mock := &MockspanReader{ctrl: ctrl}
	mock.recorder = &MockspanReaderMockRecorder{mock}
	return mock
}

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

// Producers mocks base method.
func (m *MockspanReader) Producers(ctx context.Context, blockNum uint64) (*heimdall.ValidatorSet, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Producers", ctx, blockNum)
	ret0, _ := ret[0].(*heimdall.ValidatorSet)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Producers indicates an expected call of Producers.
func (mr *MockspanReaderMockRecorder) Producers(ctx, blockNum any) *MockspanReaderProducersCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Producers", reflect.TypeOf((*MockspanReader)(nil).Producers), ctx, blockNum)
	return &MockspanReaderProducersCall{Call: call}
}

// MockspanReaderProducersCall wrap *gomock.Call
type MockspanReaderProducersCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockspanReaderProducersCall) Return(arg0 *heimdall.ValidatorSet, arg1 error) *MockspanReaderProducersCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockspanReaderProducersCall) Do(f func(context.Context, uint64) (*heimdall.ValidatorSet, error)) *MockspanReaderProducersCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockspanReaderProducersCall) DoAndReturn(f func(context.Context, uint64) (*heimdall.ValidatorSet, error)) *MockspanReaderProducersCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// Span mocks base method.
func (m *MockspanReader) Span(ctx context.Context, id uint64) (*heimdall.Span, bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Span", ctx, id)
	ret0, _ := ret[0].(*heimdall.Span)
	ret1, _ := ret[1].(bool)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// Span indicates an expected call of Span.
func (mr *MockspanReaderMockRecorder) Span(ctx, id any) *MockspanReaderSpanCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Span", reflect.TypeOf((*MockspanReader)(nil).Span), ctx, id)
	return &MockspanReaderSpanCall{Call: call}
}

// MockspanReaderSpanCall wrap *gomock.Call
type MockspanReaderSpanCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockspanReaderSpanCall) Return(arg0 *heimdall.Span, arg1 bool, arg2 error) *MockspanReaderSpanCall {
	c.Call = c.Call.Return(arg0, arg1, arg2)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockspanReaderSpanCall) Do(f func(context.Context, uint64) (*heimdall.Span, bool, error)) *MockspanReaderSpanCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockspanReaderSpanCall) DoAndReturn(f func(context.Context, uint64) (*heimdall.Span, bool, error)) *MockspanReaderSpanCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
