Emcee
1import Foundation
2import QueueModels
3
4public struct WorkerSpecificConfiguration: Codable, Hashable {
5public let numberOfSimulators: UInt
6public let maximumCacheSize: Int
7public let maximumCacheTTL: TimeInterval
8
9public init(
10numberOfSimulators: UInt,
11maximumCacheSize: Int,
12maximumCacheTTL: TimeInterval
13) {
14self.numberOfSimulators = numberOfSimulators
15self.maximumCacheSize = maximumCacheSize
16self.maximumCacheTTL = maximumCacheTTL
17}
18
19public init(from decoder: Decoder) throws {
20let container = try decoder.container(keyedBy: CodingKeys.self)
21
22numberOfSimulators = try container.decodeIfPresent(UInt.self, forKey: .numberOfSimulators) ??
23WorkerSpecificConfigurationDefaultValues.defaultWorkerConfiguration.numberOfSimulators
24maximumCacheSize = try container.decodeIfPresent(Int.self, forKey: .maximumCacheSize) ??
25WorkerSpecificConfigurationDefaultValues.defaultWorkerConfiguration.maximumCacheSize
26maximumCacheTTL = try container.decodeIfPresent(TimeInterval.self, forKey: .maximumCacheTTL) ??
27WorkerSpecificConfigurationDefaultValues.defaultWorkerConfiguration.maximumCacheTTL
28}
29}
30