...

Source file src/github.com/yuin/goldmark/util/util_unsafe.go

Documentation: github.com/yuin/goldmark/util

     1  //go:build !appengine && !js
     2  // +build !appengine,!js
     3  
     4  package util
     5  
     6  import (
     7  	"reflect"
     8  	"unsafe"
     9  )
    10  
    11  // BytesToReadOnlyString returns a string converted from given bytes.
    12  func BytesToReadOnlyString(b []byte) string {
    13  	return *(*string)(unsafe.Pointer(&b))
    14  }
    15  
    16  // StringToReadOnlyBytes returns bytes converted from given string.
    17  func StringToReadOnlyBytes(s string) (bs []byte) {
    18  	sh := (*reflect.StringHeader)(unsafe.Pointer(&s))
    19  	bh := (*reflect.SliceHeader)(unsafe.Pointer(&bs))
    20  	bh.Data = sh.Data
    21  	bh.Cap = sh.Len
    22  	bh.Len = sh.Len
    23  	return
    24  }
    25  

View as plain text