// SPDX-License-Identifier: Unlicense OR MIT // Byte slice views of typed slices via unsafe.Slice. // Ported from gioui.org/internal/byteslice without reflect. package gio import "unsafe" // Float32sToBytes returns a byte slice view of a float32 slice. func Float32sToBytes(s []float32) []byte { n := len(s) if n == 0 { return nil } blen := n * int(unsafe.Sizeof(s[0])) return unsafe.Slice((*byte)(unsafe.Pointer(&s[0])), blen) } // Uint16sToBytes returns a byte slice view of a uint16 slice. func Uint16sToBytes(s []uint16) []byte { n := len(s) if n == 0 { return nil } blen := n * int(unsafe.Sizeof(s[0])) return unsafe.Slice((*byte)(unsafe.Pointer(&s[0])), blen) } // Uint32sToBytes returns a byte slice view of a uint32 slice. func Uint32sToBytes(s []uint32) []byte { n := len(s) if n == 0 { return nil } blen := n * int(unsafe.Sizeof(s[0])) return unsafe.Slice((*byte)(unsafe.Pointer(&s[0])), blen) }