LibreTranslateServer.swift (921B)
1 // 2 // LibreTranslateServer.swift 3 // damus 4 // 5 // Created by Terry Yiu on 1/21/23. 6 // 7 8 import Foundation 9 10 enum LibreTranslateServer: String, CaseIterable, Identifiable, StringCodable { 11 var id: String { self.rawValue } 12 13 struct Model: Identifiable, Hashable { 14 var id: String { self.tag } 15 var tag: String 16 var displayName: String 17 var url: String? 18 } 19 20 func to_string() -> String { 21 return rawValue 22 } 23 24 init?(from string: String) { 25 guard let libreTranslateServer = LibreTranslateServer(rawValue: string) else { 26 return nil 27 } 28 self = libreTranslateServer 29 } 30 31 case custom 32 33 var model: Model { 34 switch self { 35 case .custom: 36 return .init(tag: self.rawValue, displayName: NSLocalizedString("Custom", comment: "Dropdown option for selecting a custom translation server."), url: nil) 37 } 38 } 39 }