1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package main
- import (
- "math"
- "strings"
- "unsafe"
- )
- func maxInt(a, b int) int {
- if a > b {
- return a
- }
- return b
- }
- func minInt(a, b int) int {
- if a < b {
- return a
- }
- return b
- }
- func minNonZeroInt(a, b int) int {
- switch {
- case a == 0:
- return b
- case b == 0:
- return a
- }
- return minInt(a, b)
- }
- func roundToInt(a float64) int {
- return int(math.Round(a))
- }
- func scaleInt(a int, scale float64) int {
- if a == 0 {
- return 0
- }
- return roundToInt(float64(a) * scale)
- }
- func trimAfter(s string, sep byte) string {
- i := strings.IndexByte(s, sep)
- if i < 0 {
- return s
- }
- return s[:i]
- }
- func ptrToBytes(ptr unsafe.Pointer, size int) []byte {
- return (*[math.MaxInt32]byte)(ptr)[:int(size):int(size)]
- }
|