github.com/aavshr/aws-sdk-go@v1.41.3/internal/sdkrand/read_1_5.go (about) 1 //go:build !go1.6 2 // +build !go1.6 3 4 package sdkrand 5 6 import "math/rand" 7 8 // Read backfills Go 1.6's math.Rand.Reader for Go 1.5 9 func Read(r *rand.Rand, p []byte) (n int, err error) { 10 // Copy of Go standard libraries math package's read function not added to 11 // standard library until Go 1.6. 12 var pos int8 13 var val int64 14 for n = 0; n < len(p); n++ { 15 if pos == 0 { 16 val = r.Int63() 17 pos = 7 18 } 19 p[n] = byte(val) 20 val >>= 8 21 pos-- 22 } 23 24 return n, err 25 }