XPlatform

This commit is contained in:
cdricms
2025-12-06 11:52:35 +01:00
parent 4eaae824e2
commit edb2bdd022

View File

@@ -1,6 +1,37 @@
import CoreGraphics // For CGFloat, often used in UI
import Foundation import Foundation
#if canImport(CoreGraphics)
import CoreGraphics // For CGFloat, often used in UI
#else
public typealias CGFloat = Double
public struct CGPoint: Sendable {
public var x: CGFloat
public var y: CGFloat
public init(x: CGFloat, y: CGFloat) {
self.x = x
self.y = y
}
}
public struct CGSize: Sendable {
public var width: CGFloat
public var height: CGFloat
public init(width: CGFloat, height: CGFloat) {
self.width = width
self.height = height
}
}
public struct CGRect: Sendable {
public var origin: CGPoint
public var size: CGSize
public init(origin: CGPoint, size: CGSize) {
self.origin = origin
self.size = size
}
}
#endif
public protocol ConvertibleToDouble: Numeric { public protocol ConvertibleToDouble: Numeric {
var doubleValue: Double { get } var doubleValue: Double { get }
} }
@@ -19,9 +50,11 @@ extension Float: ConvertibleToDouble {
extension Double: ConvertibleToDouble { extension Double: ConvertibleToDouble {
public var doubleValue: Double { self } public var doubleValue: Double { self }
} }
#if canImport(CoreGraphics)
extension CGFloat: ConvertibleToDouble { extension CGFloat: ConvertibleToDouble {
public var doubleValue: Double { Double(self) } public var doubleValue: Double { Double(self) }
} }
#endif
// MARK: - 1. UnitCategory Enum // MARK: - 1. UnitCategory Enum
public enum UnitCategory: String, CaseIterable, CustomStringConvertible, public enum UnitCategory: String, CaseIterable, CustomStringConvertible,