@@ -19,36 +19,29 @@ import CoreFoundation
19
19
internal let kCFRunLoopAllActivities = CFRunLoopActivity . allActivities. rawValue
20
20
#endif
21
21
22
- public struct RunLoopMode : RawRepresentable , Equatable , Hashable {
23
- public private( set) var rawValue : String
24
-
25
- public init ( _ rawValue: String ) {
26
- self . rawValue = rawValue
27
- }
28
-
29
- public init ( rawValue: String ) {
30
- self . rawValue = rawValue
31
- }
32
-
33
- public var hashValue : Int {
34
- return rawValue. hashValue
35
- }
22
+ extension RunLoop {
23
+ public struct Mode : RawRepresentable , Equatable , Hashable {
24
+ public private( set) var rawValue : String
25
+
26
+ public init ( _ rawValue: String ) {
27
+ self . rawValue = rawValue
28
+ }
36
29
37
- public static func == ( _ lhs: RunLoopMode , _ rhs: RunLoopMode ) -> Bool {
38
- return lhs. rawValue == rhs. rawValue
30
+ public init ( rawValue: String ) {
31
+ self . rawValue = rawValue
32
+ }
39
33
}
40
34
}
41
35
42
-
43
- extension RunLoopMode {
44
- public static let defaultRunLoopMode = RunLoopMode ( " kCFRunLoopDefaultMode " )
45
- public static let commonModes = RunLoopMode ( " kCFRunLoopCommonModes " )
36
+ extension RunLoop . Mode {
37
+ public static let `default` : RunLoop . Mode = RunLoop . Mode ( " kCFRunLoopDefaultMode " )
38
+ public static let common : RunLoop . Mode = RunLoop . Mode ( " kCFRunLoopCommonModes " )
46
39
47
40
// Use this instead of .rawValue._cfObject; this will allow CFRunLoop to use pointer equality internally.
48
41
fileprivate var _cfStringUniquingKnown : CFString {
49
- if self == . defaultRunLoopMode {
42
+ if self == . default {
50
43
return kCFRunLoopDefaultMode
51
- } else if self == . commonModes {
44
+ } else if self == . common {
52
45
return kCFRunLoopCommonModes
53
46
} else {
54
47
return rawValue. _cfObject
@@ -79,9 +72,9 @@ open class RunLoop: NSObject {
79
72
return _CFRunLoopGet2 ( CFRunLoopGetMain ( ) ) as! RunLoop
80
73
}
81
74
82
- open var currentMode : RunLoopMode ? {
75
+ open var currentMode : RunLoop . Mode ? {
83
76
if let mode = CFRunLoopCopyCurrentMode ( _cfRunLoop) {
84
- return RunLoopMode ( mode. _swiftObject)
77
+ return RunLoop . Mode ( mode. _swiftObject)
85
78
} else {
86
79
return nil
87
80
}
@@ -91,19 +84,19 @@ open class RunLoop: NSObject {
91
84
return _cfRunLoop
92
85
}
93
86
94
- open func add( _ timer: Timer , forMode mode: RunLoopMode ) {
87
+ open func add( _ timer: Timer , forMode mode: RunLoop . Mode ) {
95
88
CFRunLoopAddTimer ( CFRunLoopGetCurrent ( ) , timer. _cfObject, mode. _cfStringUniquingKnown)
96
89
}
97
90
98
- open func add( _ aPort: Port , forMode mode: RunLoopMode ) {
91
+ open func add( _ aPort: Port , forMode mode: RunLoop . Mode ) {
99
92
NSUnimplemented ( )
100
93
}
101
94
102
- open func remove( _ aPort: Port , forMode mode: RunLoopMode ) {
95
+ open func remove( _ aPort: Port , forMode mode: RunLoop . Mode ) {
103
96
NSUnimplemented ( )
104
97
}
105
98
106
- open func limitDate( forMode mode: RunLoopMode ) -> Date ? {
99
+ open func limitDate( forMode mode: RunLoop . Mode ) -> Date ? {
107
100
if _cfRunLoop !== CFRunLoopGetCurrent ( ) {
108
101
return nil
109
102
}
@@ -135,14 +128,14 @@ open class RunLoop: NSObject {
135
128
extension RunLoop {
136
129
137
130
public func run( ) {
138
- while run ( mode: . defaultRunLoopMode , before: Date . distantFuture) { }
131
+ while run ( mode: . default , before: Date . distantFuture) { }
139
132
}
140
133
141
134
public func run( until limitDate: Date ) {
142
- while run ( mode: . defaultRunLoopMode , before: limitDate) && limitDate. timeIntervalSinceReferenceDate > CFAbsoluteTimeGetCurrent ( ) { }
135
+ while run ( mode: . default , before: limitDate) && limitDate. timeIntervalSinceReferenceDate > CFAbsoluteTimeGetCurrent ( ) { }
143
136
}
144
137
145
- public func run( mode: RunLoopMode , before limitDate: Date ) -> Bool {
138
+ public func run( mode: RunLoop . Mode , before limitDate: Date ) -> Bool {
146
139
if _cfRunLoop !== CFRunLoopGetCurrent ( ) {
147
140
return false
148
141
}
@@ -157,11 +150,11 @@ extension RunLoop {
157
150
return true
158
151
}
159
152
160
- public func perform( inModes modes: [ RunLoopMode ] , block: @escaping ( ) -> Void ) {
153
+ public func perform( inModes modes: [ RunLoop . Mode ] , block: @escaping ( ) -> Void ) {
161
154
CFRunLoopPerformBlock ( getCFRunLoop ( ) , ( modes. map { $0. _cfStringUniquingKnown } ) . _cfObject, block)
162
155
}
163
156
164
157
public func perform( _ block: @escaping ( ) -> Void ) {
165
- perform ( inModes: [ . defaultRunLoopMode ] , block: block)
158
+ perform ( inModes: [ . default ] , block: block)
166
159
}
167
160
}
0 commit comments