metatext/Shared/Model/Unknowable.swift
2020-08-06 18:41:59 -07:00

18 lines
451 B
Swift

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