package types import ( "fmt" "github.com/seaweedfs/seaweedfs/weed/util" "strconv" ) type NeedleId uint64 const ( NeedleIdSize = 8 NeedleIdEmpty = 0 ) func NeedleIdToBytes(bytes []byte, needleId NeedleId) { util.Uint64toBytes(bytes, uint64(needleId)) } // NeedleIdToUint64 used to send max needle id to master func NeedleIdToUint64(needleId NeedleId) uint64 { return uint64(needleId) } func Uint64ToNeedleId(needleId uint64) NeedleId { return NeedleId(needleId) } func BytesToNeedleId(bytes []byte) NeedleId { return NeedleId(util.BytesToUint64(bytes)) } func (k NeedleId) String() string { return strconv.FormatUint(uint64(k), 16) } func ParseNeedleId(idString string) (NeedleId, error) { key, err := strconv.ParseUint(idString, 16, 64) if err != nil { return 0, fmt.Errorf("needle id %s format error: %v", idString, err) } return NeedleId(key), nil }