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 }