1
0
mirror of https://github.com/metabolist/metatext synced 2025-01-24 16:31:51 +01:00
metatext-app-ios-iphone-ipad/Shared/Model/Unknowable.swift
Justin Mazzocchi 56f1b63fb9
Preferences
2020-08-07 03:14:14 -07:00

18 lines
456 B
Swift

// Copyright © 2020 Metabolist. All rights reserved.
import Foundation
protocol Unknowable: RawRepresentable, CaseIterable where RawValue: Equatable {
static var unknownCase: Self { get }
}
extension Unknowable {
init(rawValue: RawValue) {
self = Self.allCases.first { $0.rawValue == rawValue } ?? Self.unknownCase
}
}
extension Unknowable {
static var allCasesExceptUnknown: [Self] { allCases.filter { $0 != unknownCase } }
}