Kirika/vector/shared.go
2022-07-23 00:12:37 +02:00

28 lines
625 B
Go

package vector
import (
"runtime"
"unsafe"
)
func Int8ToBytes(data []int8) (buf []byte) {
buf = make([]byte, len(data))
copy(buf, unsafe.Slice((*byte)(unsafe.Pointer(&data[0])), len(data)))
runtime.KeepAlive(data)
return buf
}
func Int16ToBytes(data []int16) (buf []byte) {
buf = make([]byte, len(data)*2)
copy(buf, unsafe.Slice((*byte)(unsafe.Pointer(&data[0])), len(data)*2))
runtime.KeepAlive(data)
return buf
}
func Float32ToBytes(data []float32) (buf []byte) {
buf = make([]byte, len(data)*4)
copy(buf, unsafe.Slice((*byte)(unsafe.Pointer(&data[0])), len(data)*4))
runtime.KeepAlive(data)
return buf
}