не так
Где highlighter эскейпит FnMut?
Честно сказать, мне весь код в той функции не очень нравится
Честно сказать, мне тоже
А, всё проще. Я сразу не обратил внимание, но у тебя там map внутри другого map'а, и ты эту мутабельную ссылку используешь во внутреннем замыкании
Можешь попробовать это замыкание (которое на 208 строке начинается) вынести наверх (до 196 строки), его там создать как let mut event_closure = |event| ...; и потом уже event_closure передать в map на 208 строке.
Я сначала хотел вынести его в функцию, но там дофига всего из скоупа исполльзуется.
Ну можно как замыкание вынести, ничто не мешает сделать let my_closure = |arg: MyType| { ... };
Получается полностью аналогичная ошибка
А ты объедини map и flat_map же
Хм Да, может сработать, попробую
Ну как? Сработало?
Я пока оставил закостыленную версию с коллектом и пытаюсь пофиксить другие части
Перешёл к этой части — перестал понимать как. Мне нужен какой-то Either3, получается
Either в Either и вперёд
Нет необходимости, я могу переиспользовать Either::Left. Но проблему с captured variable cannot escape FnMut closure body это не решает
Тогда видимо не судьба его вернуть нормально. Можно заменить всю эту конструкцию на фолд, где в аккумуляторе будет в том числе нужное мутабельное значение
Я думал об этом, но я не могу понять тип аккумулятора для этого фолда
Обсуждают сегодня