github.com/Mericusta/go-stp@v0.6.8/type.go (about) 1 package stp 2 3 type STPComparable[T any] interface { 4 EQ(T) bool 5 } 6 7 type STPOrdered[T any] interface { 8 LT(T) bool 9 GT(T) bool 10 } 11 12 type STPType[T any] interface { 13 V() T 14 } 15 16 type Int int 17 18 func (v Int) LT(rv Int) bool { return v < rv } 19 func (v Int) GT(rv Int) bool { return v > rv } 20 func (v Int) EQ(rv Int) bool { return v == rv } 21 func (v Int) V() Int { return v } 22 23 type Int8 int8 24 25 func (v Int8) LT(rv Int8) bool { return v < rv } 26 func (v Int8) GT(rv Int8) bool { return v > rv } 27 func (v Int8) EQ(rv Int8) bool { return v == rv } 28 func (v Int8) V() Int8 { return v } 29 30 type Int16 int16 31 32 func (v Int16) LT(rv Int16) bool { return v < rv } 33 func (v Int16) GT(rv Int16) bool { return v > rv } 34 func (v Int16) EQ(rv Int16) bool { return v == rv } 35 func (v Int16) V() Int16 { return v } 36 37 type Int32 int32 38 39 func (v Int32) LT(rv Int32) bool { return v < rv } 40 func (v Int32) GT(rv Int32) bool { return v > rv } 41 func (v Int32) EQ(rv Int32) bool { return v == rv } 42 func (v Int32) V() Int32 { return v } 43 44 type Int64 int64 45 46 func (v Int64) LT(rv Int64) bool { return v < rv } 47 func (v Int64) GT(rv Int64) bool { return v > rv } 48 func (v Int64) EQ(rv Int64) bool { return v == rv } 49 func (v Int64) V() Int64 { return v } 50 51 type Uint uint 52 53 func (v Uint) LT(rv Uint) bool { return v < rv } 54 func (v Uint) GT(rv Uint) bool { return v > rv } 55 func (v Uint) EQ(rv Uint) bool { return v == rv } 56 func (v Uint) V() Uint { return v } 57 58 type Uint8 uint8 59 60 func (v Uint8) LT(rv Uint8) bool { return v < rv } 61 func (v Uint8) GT(rv Uint8) bool { return v > rv } 62 func (v Uint8) EQ(rv Uint8) bool { return v == rv } 63 func (v Uint8) V() Uint8 { return v } 64 65 type Uint16 uint16 66 67 func (v Uint16) LT(rv Uint16) bool { return v < rv } 68 func (v Uint16) GT(rv Uint16) bool { return v > rv } 69 func (v Uint16) EQ(rv Uint16) bool { return v == rv } 70 func (v Uint16) V() Uint16 { return v } 71 72 type Uint32 uint32 73 74 func (v Uint32) LT(rv Uint32) bool { return v < rv } 75 func (v Uint32) GT(rv Uint32) bool { return v > rv } 76 func (v Uint32) EQ(rv Uint32) bool { return v == rv } 77 func (v Uint32) V() Uint32 { return v } 78 79 type Uintptr uintptr 80 81 func (v Uintptr) LT(rv Uintptr) bool { return v < rv } 82 func (v Uintptr) GT(rv Uintptr) bool { return v > rv } 83 func (v Uintptr) EQ(rv Uintptr) bool { return v == rv } 84 func (v Uintptr) V() Uintptr { return v } 85 86 type Uint64 uint64 87 88 func (v Uint64) LT(rv Uint64) bool { return v < rv } 89 func (v Uint64) GT(rv Uint64) bool { return v > rv } 90 func (v Uint64) EQ(rv Uint64) bool { return v == rv } 91 func (v Uint64) V() Uint64 { return v } 92 93 type Float32 float32 94 95 func (v Float32) LT(rv Float32) bool { return v < rv } 96 func (v Float32) GT(rv Float32) bool { return v > rv } 97 func (v Float32) EQ(rv Float32) bool { return v == rv } 98 func (v Float32) V() Float32 { return v } 99 100 type Float64 float64 101 102 func (v Float64) LT(rv Float64) bool { return v < rv } 103 func (v Float64) GT(rv Float64) bool { return v > rv } 104 func (v Float64) EQ(rv Float64) bool { return v == rv } 105 func (v Float64) V() Float64 { return v } 106 107 type String string 108 109 func (v String) LT(rv String) bool { return v < rv } 110 func (v String) GT(rv String) bool { return v > rv } 111 func (v String) EQ(rv String) bool { return v == rv } 112 func (v String) V() String { return v } 113 114 // type Complex64 complex64 115 116 // func (v Complex64) LT(rv Complex64) bool { return v < rv } 117 // func (v Complex64) GT(rv Complex64) bool { return v > rv } 118 // func (v Complex64) EQ(rv Complex64) bool { return v == rv } 119 120 // type Complex128 complex128 121 122 // func (v Complex128) LT(rv Complex128) bool { return v < rv } 123 // func (v Complex128) GT(rv Complex128) bool { return v > rv } 124 // func (v Complex128) EQ(rv Complex128) bool { return v == rv }