// Code generated by MockGen. DO NOT EDIT.
// Source: utils/iterator/iterator.go
//
// Generated by this command:
//
//	mockgen -source=utils/iterator/iterator.go -destination=utils/iterator/iteratormock/iterator.go -package=iteratormock -exclude_interfaces= -mock_names=Iterator=Iterator
//

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

import (
	reflect "reflect"

	gomock "go.uber.org/mock/gomock"
)

// Iterator is a mock of Iterator interface.
type Iterator[T any] struct {
	ctrl     *gomock.Controller
	recorder *IteratorMockRecorder[T]
}

// IteratorMockRecorder is the mock recorder for Iterator.
type IteratorMockRecorder[T any] struct {
	mock *Iterator[T]
}

// NewIterator creates a new mock instance.
func NewIterator[T any](ctrl *gomock.Controller) *Iterator[T] {
	mock := &Iterator[T]{ctrl: ctrl}
	mock.recorder = &IteratorMockRecorder[T]{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *Iterator[T]) EXPECT() *IteratorMockRecorder[T] {
	return m.recorder
}

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

// Next indicates an expected call of Next.
func (mr *IteratorMockRecorder[T]) Next() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Next", reflect.TypeOf((*Iterator[T])(nil).Next))
}

// Release mocks base method.
func (m *Iterator[T]) Release() {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Release")
}

// Release indicates an expected call of Release.
func (mr *IteratorMockRecorder[T]) Release() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Release", reflect.TypeOf((*Iterator[T])(nil).Release))
}

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

// Value indicates an expected call of Value.
func (mr *IteratorMockRecorder[T]) Value() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Value", reflect.TypeOf((*Iterator[T])(nil).Value))
}
