diff options
Diffstat (limited to 'Sora/Data/Booru/BooruProviderFlavor.swift')
| -rw-r--r-- | Sora/Data/Booru/BooruProviderFlavor.swift | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/Sora/Data/Booru/BooruProviderFlavor.swift b/Sora/Data/Booru/BooruProviderFlavor.swift index 8917ab1..c94a40d 100644 --- a/Sora/Data/Booru/BooruProviderFlavor.swift +++ b/Sora/Data/Booru/BooruProviderFlavor.swift @@ -1,18 +1,20 @@ -enum BooruProviderFlavor: String, CaseIterable, Decodable, Encodable { +enum BooruProviderFlavor: String, CaseIterable, Codable { case danbooru = "Danbooru" case gelbooru = "Gelbooru" case moebooru = "Moebooru" + // MARK: - Initialization init(provider: BooruProvider) { - switch provider { - case .danbooru: - self = .danbooru - - case .yandere, .konachan, .sakugabooru: - self = .moebooru - - case .safebooru, .gelbooru: - self = .gelbooru - } + self = Self.providerMap[provider] ?? .gelbooru } + + // MARK: - Private + private static let providerMap: [BooruProvider: Self] = [ + .danbooru: .danbooru, + .yandere: .moebooru, + .konachan: .moebooru, + .sakugabooru: .moebooru, + .safebooru: .gelbooru, + .gelbooru: .gelbooru, + ] } |