github.com/nsqio/nsq@v1.3.0/internal/protocol/byte_base10.go (about) 1 package protocol 2 3 import ( 4 "errors" 5 ) 6 7 var errBase10 = errors.New("failed to convert to Base10") 8 9 func ByteToBase10(b []byte) (n uint64, err error) { 10 base := uint64(10) 11 12 n = 0 13 for i := 0; i < len(b); i++ { 14 var v byte 15 d := b[i] 16 switch { 17 case '0' <= d && d <= '9': 18 v = d - '0' 19 default: 20 n = 0 21 err = errBase10 22 return 23 } 24 n *= base 25 n += uint64(v) 26 } 27 28 return n, err 29 }