@@ -177,120 +177,6 @@ private let dateFormatter: ISO8601DateFormatter = {
177
177
return formatter
178
178
} ( )
179
179
180
- extension DispatchQueue : CustomDebugOutputConvertible {
181
- #if os(Linux) || os(Android)
182
- public var debugOutput : String {
183
- switch self . label {
184
- case " com.apple.main-thread " : return " DispatchQueue.main "
185
- case " com.apple.root.default-qos " : return " DispatchQueue.global() "
186
- case _ where self . label == " com.apple.root. \( self . qos. qosClass) -qos " :
187
- return " DispatchQueue.global(qos: . \( self . qos. qosClass) ) "
188
- default :
189
- return " DispatchQueue(label: \( self . label. debugDescription) , qos: . \( self . qos. qosClass) ) "
190
- }
191
- }
192
- #else
193
- public var debugOutput : String {
194
- switch ( self , self . label) {
195
- case ( . main, _) : return " DispatchQueue.main "
196
- case ( _, " com.apple.root.default-qos " ) : return " DispatchQueue.global() "
197
- case ( _, _) where self . label == " com.apple.root. \( self . qos. qosClass) -qos " :
198
- return " DispatchQueue.global(qos: . \( self . qos. qosClass) ) "
199
- default :
200
- return " DispatchQueue(label: \( self . label. debugDescription) , qos: . \( self . qos. qosClass) ) "
201
- }
202
- }
203
- #endif
204
- }
205
-
206
- extension Effect : CustomDebugOutputConvertible {
207
- public var debugOutput : String {
208
- var empty : Any ?
209
- var just : Any ?
210
- var mergeMany : [ Any ] = [ ]
211
- var path : [ String ] = [ ]
212
- var transform : Any ?
213
-
214
- func updatePath( _ value: Any ) {
215
- let mirror = Mirror ( reflecting: value)
216
- let subjectType = " \( mirror. subjectType) "
217
-
218
- // if subjectType.hasPrefix("Deferred<"), let value = value as? Invokable {
219
- // updatePath(value())
220
- // }
221
- if subjectType. hasPrefix ( " Concatenate< " ) {
222
- let prefix = mirror. children. first ( where: { label, _ in label == " prefix " } ) !. value
223
- let suffix = mirror. children. first ( where: { label, _ in label == " suffix " } ) !. value
224
- mergeMany. append ( contentsOf: [ prefix, suffix] )
225
- return
226
- }
227
- if subjectType. hasPrefix ( " Delay< " ) {
228
- let interval = mirror. children. first ( where: { label, _ in label == " interval " } ) !. value
229
- let scheduler = mirror. children. first ( where: { label, _ in label == " scheduler " } ) !. value
230
- let ns = Int ( " \( Mirror ( reflecting: interval) . children. first!. value) " ) !
231
- path. append (
232
- " \n .delay(for: \( Double ( ns) / Double( NSEC_PER_SEC) ) , scheduler: \( ComposableArchitecture . debugOutput ( scheduler) ) ) "
233
- )
234
- }
235
- if subjectType. hasPrefix ( " Empty< " ) {
236
- let completeImmediately = mirror. children. first ( where: { label, _ in
237
- label == " completeImmediately "
238
- } ) !. value
239
- empty = completeImmediately
240
- }
241
- if subjectType. hasPrefix ( " Just< " ) {
242
- just = mirror. children. first!. value
243
- }
244
- if subjectType. hasPrefix ( " Map< " ) {
245
- transform = mirror. children. first ( where: { label, _ in label == " transform " } ) !. value
246
- }
247
- if subjectType. hasPrefix ( " MergeMany< " ) {
248
- let publishers = mirror. children. first ( where: { label, _ in label == " publishers " } ) !. value
249
- mergeMany. append ( contentsOf: Mirror ( reflecting: publishers) . children. map { $0. value } )
250
- return
251
- }
252
- if subjectType. hasPrefix ( " ReceiveOn< " ) {
253
- let scheduler = mirror. children. first ( where: { label, _ in label == " scheduler " } ) !. value
254
- path. append ( " \n .receive(on: \( ComposableArchitecture . debugOutput ( scheduler) ) ) " )
255
- }
256
-
257
- mirror. children. forEach { _, v in updatePath ( v) }
258
- }
259
-
260
- updatePath ( self )
261
-
262
- guard mergeMany. isEmpty else {
263
- return
264
- ComposableArchitecture
265
- . debugOutput ( mergeMany. filter { !ComposableArchitecture. debugOutput ( $0) . isEmpty } )
266
- }
267
- guard empty == nil else { return " " }
268
-
269
- if let value = just, let transform = transform {
270
- let transform = withUnsafePointer ( to: transform) {
271
- $0. withMemoryRebound ( to: ( ( Any) - > Value) . self, capacity: 1 , { $0. pointee } )
272
- }
273
- just = transform ( value)
274
- }
275
-
276
- let operators = path. reversed ( ) . joined ( )
277
- return """
278
- \( type ( of: self ) ) ( \
279
- \( just. map { " \n \( " value: \( ComposableArchitecture . debugOutput ( $0) ) " . indent ( by: 2 ) ) \n " } ?? " " ) \
280
- ) \( operators. indent ( by: !operators. isEmpty && just == nil ? 2 : 0 ) )
281
- """
282
- }
283
- }
284
-
285
- extension OperationQueue : CustomDebugOutputConvertible {
286
- public var debugOutput : String {
287
- switch ( self , self . name) {
288
- case ( . main, _) : return " OperationQueue.main "
289
- default : return " OperationQueue() "
290
- }
291
- }
292
- }
293
-
294
180
extension RunLoop : CustomDebugOutputConvertible {
295
181
public var debugOutput : String {
296
182
switch self {
0 commit comments