Преобразовать Int в коллекцию.IndexDistance

#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))