20 lines
366 B
Swift
20 lines
366 B
Swift
//
|
|
// EnumSubset.swift
|
|
// VDS
|
|
//
|
|
// Created by Matt Bruce on 12/19/22.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public protocol EnumSubset<T>: RawRepresentable, CaseIterable {
|
|
associatedtype T:RawRepresentable
|
|
var defaultValue: T { get }
|
|
}
|
|
|
|
extension EnumSubset where RawValue == T.RawValue {
|
|
public var value: T {
|
|
T(rawValue: rawValue) ?? defaultValue
|
|
}
|
|
}
|