код с кучей associated типов, проблема в том, что хочется как-то убедить раст, что non_empty_somethings_ids, никак не зависит от &mut StateType по времени жизни в данном примере.
Вот пример: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=386226d4945549bf2ef7d8abe5ae219f
Обходные пути понятны:
1. Возвращать вместо итератора сразу Vec<SomethingId>
2. Чуть поменять структуру кода и делать вот так: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=3f03f5b4cc24b1fbfe0e913ca857bf5d
Есть ещё третий вариант - пойти эмулировать GAT тем или иным способом, но он тоже не очень красивый. Есть у какого-нибудь ещё идеи?
Обсуждают сегодня