openlang

Определение типа элемента у impl FromIterator

Я делаю обёртку над чужим обобщённым API, где трейт FromEncoding поддерживает большинство примитивных типов[1] (#footnote-682731-1). Хочу добавить в обёртку возможность собирать значения, полученные через этот API, в коллекцию.

Сначала я подумал: «Коллекции реализуют FromIterator<Element>, разве нельзя воспользоваться этим?» Оказывается, нельзя, поскольку Rust совершенно обоснованно не может понять, какой Element я имею в виду: несколько реализаций impl FromEncoding for IterElement могут соответствовать одной impl FromIterator<IterElement> for Bucket<BucketElement>. Можно ли это как-то обойти, или лучше ограничиться фиксированным набором коллекций, например Vec и HashSet?

Если это поможет исключить проблему XY, речь на самом деле о rusqlite::FromSql. ↩︎ (#footnote-ref-682731-1)

Переведено с английскогоПоказать оригинал

Разговор продолжается 2

Следуя доводам
  1. Ссылка на ответ

    Можете привести небольшой неработающий пример вместе с диагностикой компилятора? Не совсем понятно, какие ограничения вы хотите выразить для этих типов. Если увидеть попытку, которую компилятор отверг, будет намного проще понять, с чего начинать поиск решения.

    Переведено с английскогоПоказать оригинал

Другие стороны того же вопроса

  1. Как унаследовать класс внутри другого класса?

    Здравствуйте, В пакете, код которого я не могу менять, есть такая иерархия классов: Я хочу добавить удобную обёртку вокруг In…

    Ответы 1Последняя активность scala
  2. Сравнение привязок have и let в Lean4

    Я заметил, что эти два выражения и ведут себя одинаково. То же происходит при доказательстве теорем. Они взаимозаменяемы? В ч…

    Ответы 3Последняя активность lean-4
  3. Инициализация TypeScript Map со значениями в виде массивов строк

    Создаю Map, в котором каждая запись содержит массив строк. Как одновременно задать его тип и инициализировать одним выражение…

    Ответы 2Последняя активность typescript