mirror of
https://github.com/metabolist/metatext.git
synced 2024-09-29 14:51:58 +00:00
17 lines
451 B
Swift
17 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" }
|
|
}
|