github.com/protolambda/zssz@v0.1.5/util/endianness/endianness.go (about)

     1  package endianness
     2  
     3  import (
     4  	"unsafe"
     5  )
     6  
     7  var IsLittleEndian bool
     8  
     9  func init() {
    10  	buf := [2]byte{}
    11  	*(*uint16)(unsafe.Pointer(&buf[0])) = uint16(0xABCD)
    12  
    13  	switch buf {
    14  	case [2]byte{0xCD, 0xAB}:
    15  		IsLittleEndian = true
    16  	case [2]byte{0xAB, 0xCD}:
    17  		IsLittleEndian = false
    18  	default:
    19  		panic("Could not determine native endianness.")
    20  	}
    21  }