mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			865 B
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			865 B
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
| package roaring
 | |
| 
 | |
| type shortIterable interface {
 | |
| 	hasNext() bool
 | |
| 	next() uint16
 | |
| }
 | |
| 
 | |
| type shortPeekable interface {
 | |
| 	shortIterable
 | |
| 	peekNext() uint16
 | |
| 	advanceIfNeeded(minval uint16)
 | |
| }
 | |
| 
 | |
| type shortIterator struct {
 | |
| 	slice []uint16
 | |
| 	loc   int
 | |
| }
 | |
| 
 | |
| func (si *shortIterator) hasNext() bool {
 | |
| 	return si.loc < len(si.slice)
 | |
| }
 | |
| 
 | |
| func (si *shortIterator) next() uint16 {
 | |
| 	a := si.slice[si.loc]
 | |
| 	si.loc++
 | |
| 	return a
 | |
| }
 | |
| 
 | |
| func (si *shortIterator) peekNext() uint16 {
 | |
| 	return si.slice[si.loc]
 | |
| }
 | |
| 
 | |
| func (si *shortIterator) advanceIfNeeded(minval uint16) {
 | |
| 	if si.hasNext() && si.peekNext() < minval {
 | |
| 		si.loc = advanceUntil(si.slice, si.loc, len(si.slice), minval)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| type reverseIterator struct {
 | |
| 	slice []uint16
 | |
| 	loc   int
 | |
| }
 | |
| 
 | |
| func (si *reverseIterator) hasNext() bool {
 | |
| 	return si.loc >= 0
 | |
| }
 | |
| 
 | |
| func (si *reverseIterator) next() uint16 {
 | |
| 	a := si.slice[si.loc]
 | |
| 	si.loc--
 | |
| 	return a
 | |
| }
 |