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

Commit b7a1c3c

Browse files
committed
Add Min/Max to dynamic number
1 parent 4a2407e commit b7a1c3c

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/ServiceStack.Text/DynamicNumber.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ 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+
object min(object lhs, object rhs);
26+
object max(object lhs, object rhs);
2527
int compareTo(object lhs, object rhs);
2628

2729
object bitwiseAnd(object lhs, object rhs);
@@ -62,6 +64,8 @@ public bool TryParse(string str, out object result)
6264
public object mul(object lhs, object rhs) => Convert(lhs) * Convert(rhs);
6365
public object div(object lhs, object rhs) => Convert(lhs) / Convert(rhs);
6466
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
67+
public object min(object lhs, object rhs) => Math.Min(Convert(lhs), Convert(rhs));
68+
public object max(object lhs, object rhs) => Math.Max(Convert(lhs), Convert(rhs));
6569
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
6670
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
6771
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
@@ -104,6 +108,8 @@ public bool TryParse(string str, out object result)
104108
public object mul(object lhs, object rhs) => Convert(lhs) * Convert(rhs);
105109
public object div(object lhs, object rhs) => Convert(lhs) / Convert(rhs);
106110
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
111+
public object min(object lhs, object rhs) => Math.Min(Convert(lhs), Convert(rhs));
112+
public object max(object lhs, object rhs) => Math.Max(Convert(lhs), Convert(rhs));
107113
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
108114
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
109115
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
@@ -146,6 +152,8 @@ public bool TryParse(string str, out object result)
146152
public object mul(object lhs, object rhs) => Convert(lhs) * Convert(rhs);
147153
public object div(object lhs, object rhs) => Convert(lhs) / Convert(rhs);
148154
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
155+
public object min(object lhs, object rhs) => Math.Min(Convert(lhs), Convert(rhs));
156+
public object max(object lhs, object rhs) => Math.Max(Convert(lhs), Convert(rhs));
149157
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
150158
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
151159
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
@@ -188,6 +196,8 @@ public bool TryParse(string str, out object result)
188196
public object mul(object lhs, object rhs) => Convert(lhs) * Convert(rhs);
189197
public object div(object lhs, object rhs) => Convert(lhs) / Convert(rhs);
190198
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
199+
public object min(object lhs, object rhs) => Math.Min(Convert(lhs), Convert(rhs));
200+
public object max(object lhs, object rhs) => Math.Max(Convert(lhs), Convert(rhs));
191201
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
192202
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
193203
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
@@ -230,6 +240,8 @@ public bool TryParse(string str, out object result)
230240
public object mul(object lhs, object rhs) => Convert(lhs) * Convert(rhs);
231241
public object div(object lhs, object rhs) => Convert(lhs) / Convert(rhs);
232242
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
243+
public object min(object lhs, object rhs) => Math.Min(Convert(lhs), Convert(rhs));
244+
public object max(object lhs, object rhs) => Math.Max(Convert(lhs), Convert(rhs));
233245
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
234246
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
235247
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
@@ -272,6 +284,8 @@ public bool TryParse(string str, out object result)
272284
public object mul(object lhs, object rhs) => Convert(lhs) * Convert(rhs);
273285
public object div(object lhs, object rhs) => Convert(lhs) / Convert(rhs);
274286
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
287+
public object min(object lhs, object rhs) => Math.Min(Convert(lhs), Convert(rhs));
288+
public object max(object lhs, object rhs) => Math.Max(Convert(lhs), Convert(rhs));
275289
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
276290
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
277291
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
@@ -314,6 +328,8 @@ public bool TryParse(string str, out object result)
314328
public object mul(object lhs, object rhs) => Convert(lhs) * Convert(rhs);
315329
public object div(object lhs, object rhs) => Convert(lhs) / Convert(rhs);
316330
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
331+
public object min(object lhs, object rhs) => Math.Min(Convert(lhs), Convert(rhs));
332+
public object max(object lhs, object rhs) => Math.Max(Convert(lhs), Convert(rhs));
317333
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
318334
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
319335
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
@@ -356,6 +372,8 @@ public bool TryParse(string str, out object result)
356372
public object mul(object lhs, object rhs) => Convert(lhs) * Convert(rhs);
357373
public object div(object lhs, object rhs) => Convert(lhs) / Convert(rhs);
358374
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
375+
public object min(object lhs, object rhs) => Math.Min(Convert(lhs), Convert(rhs));
376+
public object max(object lhs, object rhs) => Math.Max(Convert(lhs), Convert(rhs));
359377
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
360378
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
361379
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
@@ -398,6 +416,8 @@ public bool TryParse(string str, out object result)
398416
public object mul(object lhs, object rhs) => Convert(lhs) * Convert(rhs);
399417
public object div(object lhs, object rhs) => Convert(lhs) / Convert(rhs);
400418
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
419+
public object min(object lhs, object rhs) => Math.Min(Convert(lhs), Convert(rhs));
420+
public object max(object lhs, object rhs) => Math.Max(Convert(lhs), Convert(rhs));
401421
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
402422
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
403423
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
@@ -440,6 +460,8 @@ public bool TryParse(string str, out object result)
440460
public object mul(object lhs, object rhs) => Convert(lhs) * Convert(rhs);
441461
public object div(object lhs, object rhs) => Convert(lhs) / Convert(rhs);
442462
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
463+
public object min(object lhs, object rhs) => Math.Min(Convert(lhs), Convert(rhs));
464+
public object max(object lhs, object rhs) => Math.Max(Convert(lhs), Convert(rhs));
443465
public object pow(object lhs, object rhs) => Math.Pow(Convert(lhs), Convert(rhs));
444466
public object log(object lhs, object rhs) => Math.Log(Convert(lhs), Convert(rhs));
445467
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
@@ -482,6 +504,8 @@ public bool TryParse(string str, out object result)
482504
public object mul(object lhs, object rhs) => Convert(lhs) * Convert(rhs);
483505
public object div(object lhs, object rhs) => Convert(lhs) / Convert(rhs);
484506
public object mod(object lhs, object rhs) => Convert(lhs) % Convert(rhs);
507+
public object min(object lhs, object rhs) => Math.Min(Convert(lhs), Convert(rhs));
508+
public object max(object lhs, object rhs) => Math.Max(Convert(lhs), Convert(rhs));
485509
public object pow(object lhs, object rhs) => Math.Pow((double) Convert(lhs), (double) Convert(rhs));
486510
public object log(object lhs, object rhs) => Math.Log((double) Convert(lhs), (double) Convert(rhs));
487511
public int compareTo(object lhs, object rhs) => Convert(lhs).CompareTo(Convert(rhs));
@@ -635,6 +659,12 @@ public static IDynamicNumber AssertNumbers(string name, object lhs, object rhs)
635659
[MethodImpl(MethodImplOptions.AggressiveInlining)]
636660
public static object Mod(object lhs, object rhs) => AssertNumbers(nameof(Mod), lhs, rhs).mod(lhs, rhs);
637661

662+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
663+
public static object Min(object lhs, object rhs) => AssertNumbers(nameof(Min), lhs, rhs).min(lhs, rhs);
664+
665+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
666+
public static object Max(object lhs, object rhs) => AssertNumbers(nameof(Max), lhs, rhs).max(lhs, rhs);
667+
638668
[MethodImpl(MethodImplOptions.AggressiveInlining)]
639669
public static object Pow(object lhs, object rhs) => AssertNumbers(nameof(Pow), lhs, rhs).pow(lhs, rhs);
640670

0 commit comments

Comments
 (0)