Список самых устрашающих фотографий Rust-кода, с которыми я столкнулся при работе над
teloxide.
Первая картинка - три функции, нужные лишь для того, чтобы просто положить обработчик в вектор. Причина - неудовлетворённость борроу-чекера.
Вторая картинка - попытка реализовать трейт асинхронного обработчика для асинхронных замыканий. Использовать
async-trait не удалось по уже утерянной причине.
Третья, самая смачная - ошибка экспериментального компилятора. Видимо, он вошёл в бесконечную рекурсию, но затем достиг лимита - отсюда повторяющиеся вложенные конструкции и длинный список загадочных лайфтаймов.