#swift #generics #collections
#swift #обобщения #Коллекции
Вопрос:
У меня есть структура, которая постепенно обрабатывает Collection
s.
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
секунд.
Проблема в том, что я, кажется, не нахожу способ преобразовать UInt
в T.IndexDistance
.
Ответ №1:
let someUInt: UInt = 42
let indexDistance = T.IndexDistance(IntMax(someUInt))