import Foundation extension UInt32 { /** Create a value from a little-endian data representation (MSB first) - Note: The data must contain exactly four bytes. */ init(bytes: [UInt8]) { let value = bytes.convert(to: UInt32.self) self = CFSwapInt32LittleToHost(value) } /// The value encoded to a little-endian representation var encoded: Data { Data(from: CFSwapInt32HostToLittle(self)) } /// The size of a `UInt32` when converted to data static let byteSize = MemoryLayout.size }