Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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
subscript<Value>(keyPath: KeyPath<Root, Value?>) -> Value? {
get { dict[keyPath] as? Value }
set { dict[keyPath] = newValue }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment