punchnet-macos/Tun/UIntExtension.swift
2025-05-12 16:25:33 +08:00

38 lines
798 B
Swift

//
// UIntExtension.swift
// Tun
//
// Created by on 2024/5/30.
//
import Foundation
extension UInt16 {
init(bytes: (UInt8, UInt8)) {
self = UInt16(bytes.0) << 8 + UInt16(bytes.1)
}
init(data: Data) {
self = UInt16(data[0]) << 8 + UInt16(data[1])
}
func data() -> Data {
var data = Data()
data.append(contentsOf: [UInt8(self >> 8), UInt8(self & 0x00FF)])
return data
}
}
extension UInt32 {
init(bytes: (UInt8, UInt8, UInt8, UInt8)) {
self = UInt32(bytes.0) << 24 + UInt32(bytes.1) << 16 + UInt32(bytes.2) << 8 + UInt32(bytes.3)
}
init(data: Data) {
self = UInt32(data[0]) << 24 | UInt32(data[1]) << 16 | UInt32(data[2]) << 8 | UInt32(data[3])
}
}