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() {}