我使用在Swift中编写的Static
框架,该框架使用typealias Context = [String: Any]
来存储行的其他信息。
现在,我需要比较Context
中两个extension Row
结构是否相等:
public func ==(lhs: Row, rhs: Row) -> Bool {
// TODO: image, ...
return lhs.text == rhs.text
&& lhs.detailText == rhs.detailText
&& lhs.accessory == rhs.accessory
&& lhs.context == rhs.context
}
因此,我为==
实施了Row.Context
运算符:
public func ==(lhs: Row.Context, rhs: Row.Context) -> Bool {
return Array(lhs.keys) == Array(rhs.keys)
// TODO: && Array(lhs.values) == Array(rhs.values)
}
但是现在,为了lhs.context == rhs.context
我需要扩展Row.Context
类型以符合Equatable
:
extension Row.Context: Equatable {}
这正是我遇到以下错误的原因:
"必须在非专用泛型上声明约束扩展 type' Dictionary'具有由'其中'指定的约束。条款"
暂时忽略Row.Context的func ==
实现,如何使Row.Context
符合Equatable
?