github.com/RevenueMonster/sqlike@v1.0.6/util/util.go (about) 1 package util 2 3 import ( 4 "strings" 5 "sync" 6 "unsafe" 7 ) 8 9 var ( 10 strBldrPool = &sync.Pool{ 11 New: func() interface{} { 12 return new(strings.Builder) 13 }, 14 } 15 ) 16 17 // AcquireString : 18 func AcquireString() *strings.Builder { 19 return strBldrPool.Get().(*strings.Builder) 20 } 21 22 // ReleaseString : 23 func ReleaseString(x *strings.Builder) { 24 if x != nil { 25 defer strBldrPool.Put(x) 26 x.Reset() 27 } 28 } 29 30 // UnsafeString : 31 func UnsafeString(b []byte) string { 32 return *(*string)(unsafe.Pointer(&b)) 33 }