v0.0.552 mathext.ClampOpt
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 2m50s
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 2m50s
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package mathext
|
||||
|
||||
import "gogs.mikescher.com/BlackForestBytes/goext/langext"
|
||||
|
||||
func ClampInt(v int, lo int, hi int) int {
|
||||
if v < lo {
|
||||
return lo
|
||||
@@ -39,3 +41,25 @@ func ClampFloat64(v float64, lo float64, hi float64) float64 {
|
||||
return v
|
||||
}
|
||||
}
|
||||
|
||||
func Clamp[T langext.NumberConstraint](v T, min T, max T) T {
|
||||
if v < min {
|
||||
return min
|
||||
} else if v > max {
|
||||
return max
|
||||
} else {
|
||||
return v
|
||||
}
|
||||
}
|
||||
|
||||
func ClampOpt[T langext.NumberConstraint](v *T, fallback T, min T, max T) T {
|
||||
if v == nil {
|
||||
return fallback
|
||||
} else if *v < min {
|
||||
return min
|
||||
} else if *v > max {
|
||||
return max
|
||||
} else {
|
||||
return *v
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user