package main import ( "reflect" "runtime" "unsafe" ) var GetFrag = func(name string) [][]byte { return nil } type WriteString interface { WriteString(s string) (n int, err error) } func StringToBytes(s string) (bytes []byte) { str := (*reflect.StringHeader)(unsafe.Pointer(&s)) slice := (*reflect.SliceHeader)(unsafe.Pointer(&bytes)) slice.Data = str.Data slice.Len = str.Len slice.Cap = str.Len runtime.KeepAlive(&s) return bytes } func BytesToString(bytes []byte) (s string) { slice := (*reflect.SliceHeader)(unsafe.Pointer(&bytes)) str := (*reflect.StringHeader)(unsafe.Pointer(&s)) str.Data = slice.Data str.Len = slice.Len runtime.KeepAlive(&bytes) return s }