metatext/Mastodon/Sources/Mastodon/Protocols/Unknowable.swift
Justin Mazzocchi 9b59e2fbea
wip
2020-08-30 16:33:32 -07:00

16 lines
445 B
Swift

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