Merge pull request #661 from anant-j/dev

Add Mod operation
This commit is contained in:
Svilen Markov 2025-05-16 17:33:58 +01:00 committed by GitHub
commit 9bbf73db97
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 1 deletions

View File

@ -238,7 +238,7 @@ Output:
<div>90</div>
```
Other operations include `add`, `mul`, and `div`.
Other operations include `add`, `mul`, `div` and `mod`.
<hr>
@ -431,6 +431,7 @@ The following helper functions provided by Glance are available:
- `sub(a, b float) float`: Subtracts two numbers.
- `mul(a, b float) float`: Multiplies two numbers.
- `div(a, b float) float`: Divides two numbers.
- `mod(a, b int) int`: Remainder after dividing a by b (a % b).
- `formatApproxNumber(n int) string`: Formats a number to be more human-readable, e.g. 1000 -> 1k.
- `formatNumber(n float|int) string`: Formats a number with commas, e.g. 1000 -> 1,000.
- `trimPrefix(prefix string, str string) string`: Trims the prefix from a string.

View File

@ -414,6 +414,14 @@ func customAPIDoMathOp[T int | float64](a, b T, op string) T {
return 0
}
return a / b
case "mod":
ai, bi := any(a), any(b)
aint, aok := ai.(int)
bint, bok := bi.(int)
if aok && bok && bint != 0 {
return T(aint % bint)
}
return 0
}
return 0
}
@ -479,6 +487,9 @@ var customAPITemplateFuncs = func() template.FuncMap {
"div": func(a, b any) any {
return doMathOpWithAny(a, b, "div")
},
"mod": func(a, b int) any {
return doMathOpWithAny(a, b, "mod")
},
"now": func() time.Time {
return time.Now()
},