import Foundation

extension Int {
    
    var twoByteData: Data {
        let value = UInt16(clamping: self)
        return Data([value.low, value.high])
    }
    
    var fourByteData: Data {
        let value = UInt32(clamping: self)
        return Data([
            UInt8(value & 0xFF),
            UInt8((value >>  8) & 0xFF),
            UInt8((value >> 16) & 0xFF),
            UInt8((value >> 24) & 0xFF)
        ])
    }
    
    init(uint32 byte0: UInt8, _ byte1: UInt8, _ byte2: UInt8, _ byte3: UInt8) {
        self = (Int(byte0) << 24) | (Int(byte1) << 16) | (Int(byte2) << 8) | Int(byte3)
    }
    
    init(high: UInt8, low: UInt8) {
        self = Int(high) << 8 + Int(low)
    }
}
