E0373E0373 — Замикання може пережити захоплену змінну
Замикання захоплює посилання на змінну, яка може не прожити достатньо довго.
Що спричиняє цю помилку
Замикання позичає локальну змінну, але саме замикання може пережити область видимості цієї змінної. Це часто трапляється під час передачі замикань потокам або збереження їх у структурах.
Як виправити
Використайте ключове слово move для передачі власності: move || { ... }. Клонуйте змінну перед замиканням, якщо потрібен оригінал. Переконайтеся, що захоплені дані живуть достатньо довго для часу існування замикання.
Пов'язані коди помилок
E0308E0308 — Невідповідність типів
Очікуваний тип не збігається з фактично наданим типом.
E0658E0658 — Використано нестабільну функцію
Функція, що ще не стабілізована в Rust, використовується без відповідного feature gate.
E0317E0317 — В if може бракувати гілки else
Вираз if, що використовується як значення, не має гілки else.
E0119E0119 — Конфліктні реалізації трейту
Для одного типу існує дві або більше реалізацій одного й того самого трейту.
E0277E0277 — Трейт не задоволено
Тип не реалізує необхідний трейт.
E0425E0425 — Значення не знайдено в поточній області видимості
Ідентифікатор використовується, але не визначений у поточній області видимості.