nip13: crazier and more fun and hopefully slightly more performant nonce encoding.
This commit is contained in:
25
nip13/helpers.go
Normal file
25
nip13/helpers.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package nip13
|
||||
|
||||
const (
|
||||
maxSafeAscii = 126
|
||||
minSafeAscii = 35
|
||||
availableSafeAscii = maxSafeAscii - minSafeAscii
|
||||
)
|
||||
|
||||
func uintToStringCrazy(num uint64) string {
|
||||
nchars := 1 + num/availableSafeAscii
|
||||
chars := make([]byte, nchars)
|
||||
|
||||
i := 0
|
||||
for {
|
||||
if num < availableSafeAscii {
|
||||
chars[i] = byte(num + minSafeAscii)
|
||||
break
|
||||
} else {
|
||||
chars[i] = byte(num/availableSafeAscii + minSafeAscii)
|
||||
num -= availableSafeAscii
|
||||
i++
|
||||
}
|
||||
}
|
||||
return string(chars)
|
||||
}
|
||||
Reference in New Issue
Block a user