Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 659d17d

Browse files
committed
Add compareTo to DynamicNumber
1 parent e0b9860 commit 659d17d

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/ServiceStack.Text/DynamicNumber.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public interface IDynamicNumber
2222
object mod(object lhs, object rhs);
2323
object pow(object lhs, object rhs);
2424
object log(object lhs, object rhs);
25+
int compareTo(object lhs, object rhs);
2526

2627
object bitwiseAnd(object lhs, object rhs);
2728
object bitwiseOr(object lhs, object rhs);
@@ -63,6 +64,7 @@ public bool TryParse(string str, out object result)
6364
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
6465
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
6566
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
67+
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
6668

6769
public object bitwiseAnd(object lhs, object rhs) => Convert(lhs) & Convert(rhs);
6870
public object bitwiseOr(object lhs, object rhs) => Convert(lhs) | Convert(rhs);
@@ -104,6 +106,7 @@ public bool TryParse(string str, out object result)
104106
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
105107
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
106108
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
109+
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
107110

108111
public object bitwiseAnd(object lhs, object rhs) => Convert(lhs) & Convert(rhs);
109112
public object bitwiseOr(object lhs, object rhs) => Convert(lhs) | Convert(rhs);
@@ -145,6 +148,7 @@ public bool TryParse(string str, out object result)
145148
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
146149
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
147150
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
151+
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
148152

149153
public object bitwiseAnd(object lhs, object rhs) => Convert(lhs) & Convert(rhs);
150154
public object bitwiseOr(object lhs, object rhs) => Convert(lhs) | Convert(rhs);
@@ -186,6 +190,7 @@ public bool TryParse(string str, out object result)
186190
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
187191
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
188192
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
193+
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
189194

190195
public object bitwiseAnd(object lhs, object rhs) => Convert(lhs) & Convert(rhs);
191196
public object bitwiseOr(object lhs, object rhs) => Convert(lhs) | Convert(rhs);
@@ -227,6 +232,7 @@ public bool TryParse(string str, out object result)
227232
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
228233
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
229234
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
235+
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
230236

231237
public object bitwiseAnd(object lhs, object rhs) => Convert(lhs) & Convert(rhs);
232238
public object bitwiseOr(object lhs, object rhs) => Convert(lhs) | Convert(rhs);
@@ -268,6 +274,7 @@ public bool TryParse(string str, out object result)
268274
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
269275
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
270276
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
277+
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
271278

272279
public object bitwiseAnd(object lhs, object rhs) => Convert(lhs) & Convert(rhs);
273280
public object bitwiseOr(object lhs, object rhs) => Convert(lhs) | Convert(rhs);
@@ -309,6 +316,7 @@ public bool TryParse(string str, out object result)
309316
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
310317
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
311318
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
319+
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
312320

313321
public object bitwiseAnd(object lhs, object rhs) => Convert(lhs) & Convert(rhs);
314322
public object bitwiseOr(object lhs, object rhs) => Convert(lhs) | Convert(rhs);
@@ -350,6 +358,7 @@ public bool TryParse(string str, out object result)
350358
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
351359
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
352360
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
361+
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
353362

354363
public object bitwiseAnd(object lhs, object rhs) => Convert(lhs) & Convert(rhs);
355364
public object bitwiseOr(object lhs, object rhs) => Convert(lhs) | Convert(rhs);
@@ -391,6 +400,7 @@ public bool TryParse(string str, out object result)
391400
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
392401
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
393402
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
403+
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
394404

395405
public object bitwiseAnd(object lhs, object rhs) => throw new NotSupportedException("Bitwise operators only supported on integer types");
396406
public object bitwiseOr(object lhs, object rhs) => throw new NotSupportedException("Bitwise operators only supported on integer types");
@@ -432,6 +442,7 @@ public bool TryParse(string str, out object result)
432442
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
433443
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
434444
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
445+
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
435446

436447
public object bitwiseAnd(object lhs, object rhs) => throw new NotSupportedException("Bitwise operators only supported on integer types");
437448
public object bitwiseOr(object lhs, object rhs) => throw new NotSupportedException("Bitwise operators only supported on integer types");
@@ -473,6 +484,7 @@ public bool TryParse(string str, out object result)
473484
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
474485
public object pow(object lhs, object rhs) => Math.Pow((double) Convert(lhs), (double) Convert(rhs));
475486
public object log(object lhs, object rhs) => Math.Log((double) Convert(lhs), (double) Convert(rhs));
487+
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
476488

477489
public object bitwiseAnd(object lhs, object rhs) => throw new NotSupportedException("Bitwise operators only supported on integer types");
478490
public object bitwiseOr(object lhs, object rhs) => throw new NotSupportedException("Bitwise operators only supported on integer types");
@@ -629,6 +641,9 @@ public static IDynamicNumber AssertNumbers(string name, object lhs, object rhs)
629641
[MethodImpl(MethodImplOptions.AggressiveInlining)]
630642
public static object Log(object lhs, object rhs) => AssertNumbers(nameof(Log), lhs, rhs).log(lhs, rhs);
631643

644+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
645+
public static object CompareTo(object lhs, object rhs) => AssertNumbers(nameof(CompareTo), lhs, rhs).compareTo(lhs, rhs);
646+
632647
[MethodImpl(MethodImplOptions.AggressiveInlining)]
633648
public static object BitwiseAnd(object lhs, object rhs) => AssertNumbers(nameof(BitwiseAnd), lhs, rhs).bitwiseAnd(lhs, rhs);
634649

0 commit comments

Comments
 (0)