mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			633 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			633 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package hashring
 | 
						|
 | 
						|
import (
 | 
						|
	"encoding/binary"
 | 
						|
	"fmt"
 | 
						|
)
 | 
						|
 | 
						|
type Int64PairHashKey struct {
 | 
						|
	High int64
 | 
						|
	Low  int64
 | 
						|
}
 | 
						|
 | 
						|
func (k *Int64PairHashKey) Less(other HashKey) bool {
 | 
						|
	o := other.(*Int64PairHashKey)
 | 
						|
	if k.High < o.High {
 | 
						|
		return true
 | 
						|
	}
 | 
						|
	return k.High == o.High && k.Low < o.Low
 | 
						|
}
 | 
						|
 | 
						|
func NewInt64PairHashKey(bytes []byte) (HashKey, error) {
 | 
						|
	const expected = 16
 | 
						|
	if len(bytes) != expected {
 | 
						|
		return nil, fmt.Errorf(
 | 
						|
			"expected %d bytes, got %d bytes",
 | 
						|
			expected, len(bytes),
 | 
						|
		)
 | 
						|
	}
 | 
						|
	return &Int64PairHashKey{
 | 
						|
		High: int64(binary.LittleEndian.Uint64(bytes[:8])),
 | 
						|
		Low:  int64(binary.LittleEndian.Uint64(bytes[8:])),
 | 
						|
	}, nil
 | 
						|
}
 |