import Foundation import CryptoKit enum ConnectionStrategy: Int, CaseIterable, Identifiable { case local = 0 case remote = 1 case localFirst = 2 case remoteFirst = 3 var id: Int { rawValue } var transmissionTypes: [TransmissionType] { switch self { case .local: return [.overLocalWifi] case .localFirst: return [.overLocalWifi, .throughServer] case .remote: return [.throughServer] case .remoteFirst: return [.throughServer, .overLocalWifi] } } } extension ConnectionStrategy: CustomStringConvertible { var description: String { transmissionTypes.map { $0.displayName }.joined(separator: " + ") } }