我有一个逐步处理Collection
的结构。
struct Foo<T: BidirectionalCollection>
where T.Iterator.Element == UInt8,
T.SubSequence: BidirectionalCollection,
T.SubSequence.Iterator.Element == T.Iterator.Element,
T.SubSequence.Index == T.Index,
T.SubSequence.IndexDistance == T.IndexDistance,
T.SubSequence.SubSequence == T.SubSequence
{
private var state: T.IndexDistance = 0
mutating func process(_ foo: T) {
// ...
}
}
我希望在内部跟踪T.IndexDistance
(例如,计算已处理T.IndexDistance
的总数)。
但是,我也希望将此距离与普通UInt
进行比较,并将其设置为正常UInt
s。
问题是,我似乎找不到将UInt
转换为T.IndexDistance
的方法。
答案 0 :(得分:0)
let someUInt: UInt = 42
let indexDistance = T.IndexDistance(IntMax(someUInt))