commit 3fbee55188451fb764e60ebcc7c6cab7e437fd7e parent a9ba6fa04c2792c10928e28d8157b8bfca337c64 Author: Yongbin Kim <iam@yongbin.kim> Date: Tue, 10 Jan 2023 05:19:24 +0000 Some unsafe stuff ... with very small performance benifit Diffstat:
M | nanoid.go | | | 10 | ++++++---- |
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/nanoid.go b/nanoid.go @@ -3,6 +3,7 @@ package nanoid import ( "io" "sync" + "unsafe" cryptoRand "crypto/rand" ) @@ -52,14 +53,15 @@ func (g *generator) Generate() NanoID { g.offset = 0 } - var id NanoID + var id = (*NanoID)(unsafe.Pointer(&g.buf[g.offset])) - for i := 0; i < idSize; i++ { - id[i] = characters[g.buf[g.offset+i]&0b00111111] + for i, v := range id { + id[i] = characters[v&0b00111111] } + g.offset += idSize - return id + return *id } func Generate() NanoID {