Skip to content

Instantly share code, notes, and snippets.

struct MultiTypeDictionary<Root> {
private var dict: [PartialKeyPath<Root>: Any] = [:]
// Called for non-optional properties
subscript<Value>(keyPath: KeyPath<Root, Value>) -> Value? {
get { dict[keyPath] as? Value }
set { dict[keyPath] = newValue }
}
// Called for optional properties