import Foundation extension UInt32 { /** Create a value from a little-endian data representation (MSB first) - Note: The data must contain exactly four bytes. */ init(data: Data) { let value = data.convert(into: UInt32.zero) 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 }