Я делаю обёртку над чужим обобщённым 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)