123456789101112131415161718192021 |
- //go:build !go1.20 && !go1.21
- package fasthttp
- import (
- "reflect"
- "unsafe"
- )
- // s2b converts string to a byte slice without memory allocation.
- //
- // Note it may break if string and/or slice header will change
- // in the future go versions.
- func s2b(s string) (b []byte) {
- bh := (*reflect.SliceHeader)(unsafe.Pointer(&b))
- sh := (*reflect.StringHeader)(unsafe.Pointer(&s))
- bh.Data = sh.Data
- bh.Cap = sh.Len
- bh.Len = sh.Len
- return b
- }
|