package internal import ( "encoding/binary" "unsafe" ) // NativeEndian is set to either binary.BigEndian or binary.LittleEndian, // depending on the host's endianness. var NativeEndian binary.ByteOrder func init() { if isBigEndian() { NativeEndian = binary.BigEndian } else { NativeEndian = binary.LittleEndian } } func isBigEndian() (ret bool) { i := int(0x1) bs := (*[int(unsafe.Sizeof(i))]byte)(unsafe.Pointer(&i)) return bs[0] == 0 }