нет, это плохая идея:
1. при замыкании хотя бы чего-то по ссылке у тебя появляетя лайфтайм замыкания, и после этого оно становится сразу менее полезным. Отдать его просто так куда-то или вернуть из функции у тебя не получится. Заспавнить в тредпуле тоже.
2. если тебе очень хочется замкнуть часть переменных по ссылке а часть по значению, то в расте есть шедовинг:
let myVar = &myVar;
и теперь myVar замкнется по ссылке
++, самое прикольное, что просто объявляешь вещи до блока, которые хочешь расшарить, это прямо надо я считаю занести в стандартный код стайл:
let fut3 = {
let is_done = Arc::clone(&is_done);
let current_items = Arc::clone(¤t_items);
async move {
...
}
}