Emcee
53 строки · 1.4 Кб
1import Foundation
2
3public enum Verbosity: UInt, Codable, Comparable {
4/// Detailed debug info suitable for tracing program execution
5case trace = 999
6/// Debug logs
7case debug = 500
8/// User visible logs
9case info = 400
10/// Warnings important for the user
11case warning = 300
12/// Errors important for the user
13case error = 200
14/// Always print this log message
15case always = 0
16
17public static func < (left: Verbosity, right: Verbosity) -> Bool {
18return left.rawValue < right.rawValue
19}
20
21public init?(rawValue: UInt) {
22if rawValue >= Verbosity.trace.rawValue {
23self = .trace
24} else if rawValue >= Verbosity.debug.rawValue {
25self = .debug
26} else if rawValue >= Verbosity.info.rawValue {
27self = .info
28} else if rawValue >= Verbosity.warning.rawValue {
29self = .warning
30} else if rawValue >= Verbosity.error.rawValue {
31self = .error
32} else {
33self = .always
34}
35}
36
37public var stringCode: String {
38switch self {
39case .trace:
40return "TRACE"
41case .debug:
42return "DEBUG"
43case .info:
44return "INFO"
45case .warning:
46return "WARNING"
47case .error:
48return "ERROR"
49case .always:
50return "ALWAYS"
51}
52}
53}
54