github.com/MetalBlockchain/metalgo@v1.11.9/vms/platformvm/state/slice_iterator_test.go (about) 1 // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package state 5 6 var _ StakerIterator = (*sliceIterator)(nil) 7 8 type sliceIterator struct { 9 index int 10 stakers []*Staker 11 } 12 13 // NewSliceIterator returns an iterator that contains the elements of [stakers] 14 // in order. Doesn't sort by anything. 15 func NewSliceIterator(stakers ...*Staker) StakerIterator { 16 return &sliceIterator{ 17 index: -1, 18 stakers: stakers, 19 } 20 } 21 22 func (i *sliceIterator) Next() bool { 23 i.index++ 24 return i.index < len(i.stakers) 25 } 26 27 func (i *sliceIterator) Value() *Staker { 28 return i.stakers[i.index] 29 } 30 31 func (*sliceIterator) Release() {}