diff options
Diffstat (limited to 'utils/convert.go')
-rw-r--r-- | utils/convert.go | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/utils/convert.go b/utils/convert.go deleted file mode 100644 index d96acfbb..00000000 --- a/utils/convert.go +++ /dev/null @@ -1,38 +0,0 @@ -package utils - -import ( - "reflect" - "unsafe" -) - -// AsBytes returns a slice that refers to the data backing the string s. -func AsBytes(s string) []byte { - // get the pointer to the data of the string - p := unsafe.Pointer((*reflect.StringHeader)(unsafe.Pointer(&s)).Data) - - var b []byte - hdr := (*reflect.SliceHeader)(unsafe.Pointer(&b)) - hdr.Data = uintptr(p) - // we need to set the cap and len for the string to byte convert - // because string is shorter than []bytes - hdr.Cap = len(s) - hdr.Len = len(s) - - // checker to check mutable access to the data - SetChecker(b) - return b -} - -// AsString returns a string that refers to the data backing the slice s. -func AsString(b []byte) string { - p := unsafe.Pointer((*reflect.SliceHeader)(unsafe.Pointer(&b)).Data) - - var s string - hdr := (*reflect.StringHeader)(unsafe.Pointer(&s)) - hdr.Data = uintptr(p) - hdr.Len = len(b) - - // checker to check mutable access to the data - SetChecker(b) - return s -} |