10
10
//
11
11
//===----------------------------------------------------------------------===//
12
12
13
- @_fixed_layout
14
13
public struct StdlibVersion : RawRepresentable {
15
- public let rawValue : Double
14
+ public let rawValue : ( Int , Int )
16
15
17
- @inlinable
18
- public init ( rawValue: Double ) {
16
+ public init ( rawValue: ( Int , Int ) ) {
19
17
self . rawValue = rawValue
20
18
}
21
19
}
22
20
23
21
extension StdlibVersion {
24
- public static func custom( _ version : Double ) -> StdlibVersion {
25
- return StdlibVersion ( rawValue: version )
22
+ public static func custom( _ version1 : Int , _ version2 : Int ) -> StdlibVersion {
23
+ return StdlibVersion ( rawValue: ( version1 , version2 ) )
26
24
}
27
25
28
26
public static var currentlyRunning : StdlibVersion {
@@ -31,9 +29,8 @@ extension StdlibVersion {
31
29
32
30
// Shipped in macOS 10.14.2, iOS 12.2, watchOS 5.2, tvOS 13.2
33
31
public static var swift5_0 : StdlibVersion {
34
- return StdlibVersion ( rawValue: 1000.0 )
32
+ return StdlibVersion ( rawValue: ( 1000 , 0 ) )
35
33
}
36
-
37
34
}
38
35
39
36
extension StdlibVersion : CustomStringConvertible {
@@ -42,8 +39,18 @@ extension StdlibVersion: CustomStringConvertible {
42
39
}
43
40
}
44
41
45
- extension StdlibVersion : Equatable { }
46
- extension StdlibVersion : Hashable { }
42
+ extension StdlibVersion : Equatable {
43
+ public static func == ( left: StdlibVersion , right: StdlibVersion ) -> Bool {
44
+ return left. rawValue == right. rawValue
45
+ }
46
+ }
47
+
48
+ extension StdlibVersion : Hashable {
49
+ public func hash( into hasher: inout Hasher ) {
50
+ hasher. combine ( rawValue. 0 )
51
+ hasher. combine ( rawValue. 1 )
52
+ }
53
+ }
47
54
48
55
extension StdlibVersion : Comparable {
49
56
public static func < ( left: StdlibVersion , right: StdlibVersion ) -> Bool {
0 commit comments