Skip to content

Commit 1d67539

Browse files
authored
Merge pull request #137 from RomanPodymov/feature/qos_class_description
Unified code for DispatchQoS.QoSClass.description and qos_class_t.description
2 parents 669c88a + 4688abd commit 1d67539

1 file changed

Lines changed: 35 additions & 22 deletions

File tree

Sources/Async/Async.swift

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -717,6 +717,19 @@ public struct AsyncGroup {
717717
}
718718
}
719719

720+
/**
721+
Each QoSClassDescription's case contains a description for qos_class_t or DispatchQoS.QoSClass cases
722+
*/
723+
private enum QoSClassDescription: String {
724+
case main = "Main"
725+
case userInteractive = "User Interactive"
726+
case userInitiated = "User Initiated"
727+
case `default` = "Default"
728+
case utility = "Utility"
729+
case background = "Background"
730+
case unspecified = "Unspecified"
731+
case unknown = "Unknown"
732+
}
720733

721734
// MARK: - Extension for `qos_class_t`
722735

@@ -729,18 +742,18 @@ public extension qos_class_t {
729742
Description of the `qos_class_t`. E.g. "Main", "User Interactive", etc. for the given Quality of Service class.
730743
*/
731744
var description: String {
732-
get {
733-
switch self {
734-
case qos_class_main(): return "Main"
735-
case DispatchQoS.QoSClass.userInteractive.rawValue: return "User Interactive"
736-
case DispatchQoS.QoSClass.userInitiated.rawValue: return "User Initiated"
737-
case DispatchQoS.QoSClass.default.rawValue: return "Default"
738-
case DispatchQoS.QoSClass.utility.rawValue: return "Utility"
739-
case DispatchQoS.QoSClass.background.rawValue: return "Background"
740-
case DispatchQoS.QoSClass.unspecified.rawValue: return "Unspecified"
741-
default: return "Unknown"
742-
}
745+
let result: QoSClassDescription
746+
switch self {
747+
case qos_class_main(): result = .main
748+
case DispatchQoS.QoSClass.userInteractive.rawValue: result = .userInteractive
749+
case DispatchQoS.QoSClass.userInitiated.rawValue: result = .userInitiated
750+
case DispatchQoS.QoSClass.default.rawValue: result = .default
751+
case DispatchQoS.QoSClass.utility.rawValue: result = .utility
752+
case DispatchQoS.QoSClass.background.rawValue: result = .background
753+
case DispatchQoS.QoSClass.unspecified.rawValue: result = .unspecified
754+
default: result = .unknown
743755
}
756+
return result.rawValue
744757
}
745758
}
746759

@@ -753,17 +766,17 @@ public extension qos_class_t {
753766
public extension DispatchQoS.QoSClass {
754767

755768
var description: String {
756-
get {
757-
switch self {
758-
case DispatchQoS.QoSClass(rawValue: qos_class_main())!: return "Main"
759-
case .userInteractive: return "User Interactive"
760-
case .userInitiated: return "User Initiated"
761-
case .default: return "Default"
762-
case .utility: return "Utility"
763-
case .background: return "Background"
764-
case .unspecified: return "Unspecified"
765-
@unknown default: return "Unknown"
766-
}
769+
let result: QoSClassDescription
770+
switch self {
771+
case DispatchQoS.QoSClass(rawValue: qos_class_main())!: result = .main
772+
case .userInteractive: result = .userInteractive
773+
case .userInitiated: result = .userInitiated
774+
case .default: result = .default
775+
case .utility: result = .utility
776+
case .background: result = .background
777+
case .unspecified: result = .unspecified
778+
@unknown default: result = .unknown
767779
}
780+
return result.rawValue
768781
}
769782
}

0 commit comments

Comments
 (0)