seaweedfs/weed/util/bptree/int.go

358 lines
6.4 KiB
Go

package bptree
import (
"encoding/binary"
"fmt"
)
type Int8 int8
type UInt8 uint8
type Int16 int16
type UInt16 uint16
type Int32 int32
type UInt32 uint32
type Int64 int64
type UInt64 uint64
type Int int
type UInt uint
func (self *Int8) MarshalBinary() ([]byte, error) {
bytes := make([]byte, 0)
bytes[0] = uint8(*self)
return bytes, nil
}
func (self *Int8) UnmarshalBinary(data []byte) error {
if len(data) != 1 {
return fmt.Errorf("data wrong size")
}
*self = Int8(data[0])
return nil
}
func (self Int8) Equals(other Equatable) bool {
if o, ok := other.(Int8); ok {
return self == o
} else {
return false
}
}
func (self Int8) Less(other Sortable) bool {
if o, ok := other.(Int8); ok {
return self < o
} else {
return false
}
}
func (self Int8) Hash() int {
return int(self)
}
func (self *UInt8) MarshalBinary() ([]byte, error) {
bytes := make([]byte, 0)
bytes[0] = uint8(*self)
return bytes, nil
}
func (self *UInt8) UnmarshalBinary(data []byte) error {
if len(data) != 1 {
return fmt.Errorf("data wrong size")
}
*self = UInt8(data[0])
return nil
}
func (self UInt8) Equals(other Equatable) bool {
if o, ok := other.(UInt8); ok {
return self == o
} else {
return false
}
}
func (self UInt8) Less(other Sortable) bool {
if o, ok := other.(UInt8); ok {
return self < o
} else {
return false
}
}
func (self UInt8) Hash() int {
return int(self)
}
func (self *Int16) MarshalBinary() ([]byte, error) {
bytes := make([]byte, 2)
binary.BigEndian.PutUint16(bytes, uint16(*self))
return bytes, nil
}
func (self *Int16) UnmarshalBinary(data []byte) error {
if len(data) != 2 {
return fmt.Errorf("data wrong size")
}
*self = Int16(binary.BigEndian.Uint16(data))
return nil
}
func (self Int16) Equals(other Equatable) bool {
if o, ok := other.(Int16); ok {
return self == o
} else {
return false
}
}
func (self Int16) Less(other Sortable) bool {
if o, ok := other.(Int16); ok {
return self < o
} else {
return false
}
}
func (self Int16) Hash() int {
return int(self)
}
func (self *UInt16) MarshalBinary() ([]byte, error) {
bytes := make([]byte, 2)
binary.BigEndian.PutUint16(bytes, uint16(*self))
return bytes, nil
}
func (self *UInt16) UnmarshalBinary(data []byte) error {
if len(data) != 2 {
return fmt.Errorf("data wrong size")
}
*self = UInt16(binary.BigEndian.Uint16(data))
return nil
}
func (self UInt16) Equals(other Equatable) bool {
if o, ok := other.(UInt16); ok {
return self == o
} else {
return false
}
}
func (self UInt16) Less(other Sortable) bool {
if o, ok := other.(UInt16); ok {
return self < o
} else {
return false
}
}
func (self UInt16) Hash() int {
return int(self)
}
func (self *Int32) MarshalBinary() ([]byte, error) {
bytes := make([]byte, 4)
binary.BigEndian.PutUint32(bytes, uint32(*self))
return bytes, nil
}
func (self *Int32) UnmarshalBinary(data []byte) error {
if len(data) != 4 {
return fmt.Errorf("data wrong size")
}
*self = Int32(binary.BigEndian.Uint32(data))
return nil
}
func (self Int32) Equals(other Equatable) bool {
if o, ok := other.(Int32); ok {
return self == o
} else {
return false
}
}
func (self Int32) Less(other Sortable) bool {
if o, ok := other.(Int32); ok {
return self < o
} else {
return false
}
}
func (self *UInt32) MarshalBinary() ([]byte, error) {
bytes := make([]byte, 4)
binary.BigEndian.PutUint32(bytes, uint32(*self))
return bytes, nil
}
func (self *UInt32) UnmarshalBinary(data []byte) error {
if len(data) != 4 {
return fmt.Errorf("data wrong size")
}
*self = UInt32(binary.BigEndian.Uint32(data))
return nil
}
func (self Int32) Hash() int {
return int(self)
}
func (self UInt32) Equals(other Equatable) bool {
if o, ok := other.(UInt32); ok {
return self == o
} else {
return false
}
}
func (self UInt32) Less(other Sortable) bool {
if o, ok := other.(UInt32); ok {
return self < o
} else {
return false
}
}
func (self UInt32) Hash() int {
return int(self)
}
func (self *Int64) MarshalBinary() ([]byte, error) {
bytes := make([]byte, 8)
binary.BigEndian.PutUint64(bytes, uint64(*self))
return bytes, nil
}
func (self *Int64) UnmarshalBinary(data []byte) error {
if len(data) != 8 {
return fmt.Errorf("data wrong size")
}
*self = Int64(binary.BigEndian.Uint64(data))
return nil
}
func (self Int64) Equals(other Equatable) bool {
if o, ok := other.(Int64); ok {
return self == o
} else {
return false
}
}
func (self Int64) Less(other Sortable) bool {
if o, ok := other.(Int64); ok {
return self < o
} else {
return false
}
}
func (self Int64) Hash() int {
return int(self>>32) ^ int(self)
}
func (self *UInt64) MarshalBinary() ([]byte, error) {
bytes := make([]byte, 8)
binary.BigEndian.PutUint64(bytes, uint64(*self))
return bytes, nil
}
func (self *UInt64) UnmarshalBinary(data []byte) error {
if len(data) != 8 {
return fmt.Errorf("data wrong size")
}
*self = UInt64(binary.BigEndian.Uint64(data))
return nil
}
func (self UInt64) Equals(other Equatable) bool {
if o, ok := other.(UInt64); ok {
return self == o
} else {
return false
}
}
func (self UInt64) Less(other Sortable) bool {
if o, ok := other.(UInt64); ok {
return self < o
} else {
return false
}
}
func (self UInt64) Hash() int {
return int(self>>32) ^ int(self)
}
func (self *Int) MarshalBinary() ([]byte, error) {
bytes := make([]byte, 4)
binary.BigEndian.PutUint32(bytes, uint32(*self))
return bytes, nil
}
func (self *Int) UnmarshalBinary(data []byte) error {
if len(data) != 4 {
return fmt.Errorf("data wrong size")
}
*self = Int(binary.BigEndian.Uint32(data))
return nil
}
func (self Int) Equals(other Equatable) bool {
if o, ok := other.(Int); ok {
return self == o
} else {
return false
}
}
func (self Int) Less(other Sortable) bool {
if o, ok := other.(Int); ok {
return self < o
} else {
return false
}
}
func (self Int) Hash() int {
return int(self)
}
func (self *UInt) MarshalBinary() ([]byte, error) {
bytes := make([]byte, 4)
binary.BigEndian.PutUint32(bytes, uint32(*self))
return bytes, nil
}
func (self *UInt) UnmarshalBinary(data []byte) error {
if len(data) != 4 {
return fmt.Errorf("data wrong size")
}
*self = UInt(binary.BigEndian.Uint32(data))
return nil
}
func (self UInt) Equals(other Equatable) bool {
if o, ok := other.(UInt); ok {
return self == o
} else {
return false
}
}
func (self UInt) Less(other Sortable) bool {
if o, ok := other.(UInt); ok {
return self < o
} else {
return false
}
}
func (self UInt) Hash() int {
return int(self)
}