unsafe.go 384 B

1234567891011121314151617181920212223
  1. //go:build !appengine
  2. // +build !appengine
  3. package util
  4. import (
  5. "unsafe"
  6. )
  7. // BytesToString converts byte slice to string.
  8. func BytesToString(b []byte) string {
  9. return *(*string)(unsafe.Pointer(&b))
  10. }
  11. // StringToBytes converts string to byte slice.
  12. func StringToBytes(s string) []byte {
  13. return *(*[]byte)(unsafe.Pointer(
  14. &struct {
  15. string
  16. Cap int
  17. }{s, len(s)},
  18. ))
  19. }