AnotherTrait, а конкретные реализации возвращают уже конкретные типы и указывают это? Чтобы не требовалось боксить
нет нельзя
trait T { type R: AnotherTrait; fn method() -> Self::R; } Такое?
Можно через ассоциированные типы, как выше @d34d10cc написал, но будут проблемы, если T параметризован лайфтаймом. Вот статья на эту тему интересная: https://lukaskalbertodt.github.io/2018/08/03/solving-the-generalized-streaming-iterator-problem-without-gats.html#workaround-b-hrtbs--the-family-trait-pattern
Обсуждают сегодня