|
- // +build !appengine,!js
-
- package util
-
- import (
- "reflect"
- "unsafe"
- )
-
- // BytesToReadOnlyString returns a string converted from given bytes.
- func BytesToReadOnlyString(b []byte) string {
- return *(*string)(unsafe.Pointer(&b))
- }
-
- // StringToReadOnlyBytes returns bytes converted from given string.
- func StringToReadOnlyBytes(s string) []byte {
- sh := (*reflect.StringHeader)(unsafe.Pointer(&s))
- bh := reflect.SliceHeader{Data: sh.Data, Len: sh.Len, Cap: sh.Len}
- return *(*[]byte)(unsafe.Pointer(&bh))
- }
|