comparator.bmx 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. Interface IComparator<T>
  2. Method Compare:Int(o1:T, o2:T)
  3. End Interface
  4. Function DefaultComparator_Compare:Int(o1:Byte, o2:Byte)
  5. Return o1 - o2
  6. End Function
  7. Function DefaultComparator_Compare:Int(o1:Short, o2:Short)
  8. Return o1 - o2
  9. End Function
  10. Function DefaultComparator_Compare:Int(o1:Int, o2:Int)
  11. Return o1 - o2
  12. End Function
  13. Function DefaultComparator_Compare:Int(o1:UInt, o2:UInt)
  14. If o1 < o2 Then
  15. Return -1
  16. Else If o2 < o1 Then
  17. Return 1
  18. End If
  19. Return 0
  20. End Function
  21. Function DefaultComparator_Compare:Int(o1:Long, o2:Long)
  22. If o1 < o2 Then
  23. Return -1
  24. Else If o2 < o1 Then
  25. Return 1
  26. End If
  27. Return 0
  28. End Function
  29. Function DefaultComparator_Compare:Int(o1:ULong, o2:ULong)
  30. If o1 < o2 Then
  31. Return -1
  32. Else If o2 < o1 Then
  33. Return 1
  34. End If
  35. Return 0
  36. End Function
  37. Function DefaultComparator_Compare:Int(o1:Size_T, o2:Size_T)
  38. If o1 < o2 Then
  39. Return -1
  40. Else If o2 < o1 Then
  41. Return 1
  42. End If
  43. Return 0
  44. End Function
  45. Function DefaultComparator_Compare:Int(o1:Float, o2:Float)
  46. If o1 < o2 Then
  47. Return -1
  48. Else If o2 < o1 Then
  49. Return 1
  50. End If
  51. Return 0
  52. End Function
  53. Function DefaultComparator_Compare:Int(o1:Double, o2:Double)
  54. If o1 < o2 Then
  55. Return -1
  56. Else If o2 < o1 Then
  57. Return 1
  58. End If
  59. Return 0
  60. End Function
  61. Function DefaultComparator_Compare:Int(o1:Object, o2:Object)
  62. If Not o1 And Not o2 Then
  63. Return 0
  64. End If
  65. If o1 And o2 Then
  66. Return o1.Compare(o2)
  67. End If
  68. Return -1
  69. End Function
  70. Function DefaultComparator_Compare:Int(o1:Byte Ptr, o2:Byte Ptr)
  71. Return o1 - o2
  72. End Function
  73. Function DefaultComparator_Compare:Int(o1:LongInt, o2:LongInt)
  74. If o1 < o2 Then
  75. Return -1
  76. Else If o2 < o1 Then
  77. Return 1
  78. End If
  79. Return 0
  80. End Function
  81. Function DefaultComparator_Compare:Int(o1:ULongInt, o2:ULongInt)
  82. If o1 < o2 Then
  83. Return -1
  84. Else If o2 < o1 Then
  85. Return 1
  86. End If
  87. Return 0
  88. End Function