diff --git a/Sources/BluetoothUUID.swift b/Sources/BluetoothUUID.swift index cb242cd69..cd0dc8b04 100644 --- a/Sources/BluetoothUUID.swift +++ b/Sources/BluetoothUUID.swift @@ -95,9 +95,7 @@ extension BluetoothUUID: RawRepresentable { guard let uuid = UUID(uuidString: rawValue) else { return nil } - let bigEndian = UInt128(bytes: uuid.uuid) - - self = BluetoothUUID.init(bigEndian: .bit128(bigEndian)) + self = .bit128(UInt128(uuid: uuid)) default: @@ -289,7 +287,7 @@ public extension BluetoothUUID { /// Initialize from a `Foundation.UUID`. public init(uuid: UUID) { - self.init(bigEndian: BluetoothUUID(data: uuid.data)!) + self.init(bigEndian: .bit128(UInt128(uuid: uuid))) } /// Bluetooth Base UUID (big endian) diff --git a/Sources/UInt128.swift b/Sources/UInt128.swift index 2c9fff564..5615d15d0 100644 --- a/Sources/UInt128.swift +++ b/Sources/UInt128.swift @@ -156,7 +156,18 @@ public extension UInt128 { // MARK: - NSUUID -public extension UUID { +public extension UInt128 { + + public init(uuid: Foundation.UUID) { + + /// UUID is always big endian + let bigEndian = UInt128(bytes: uuid.uuid) + + self.init(bigEndian: bigEndian) + } +} + +public extension Foundation.UUID { public init(_ value: UInt128) {