Хабр Курсы для бэкендеров
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

Реальный случай из практики: у меня была корутина, которая держала в памяти
Stringс подробным сообщением об ошибке через границу.await, и весила 8 КБ на задачу. ЗаменаStringнаBox<str>срезала размер до 16 байт. На десяти тысячах задач это разница в восемьдесят мегабайт.
Сперва хотел спросить «Это как, String хранит данные в куче и весит всего 24 байта», а потом посмотрел на ник автора и понял, что спрашивать нет смысла...
Не может быть случайностью, что эта статья вышла через 4 часа после вот этой https://habr.com/ru/companies/beget/articles/1023090/ на точно ту же тему. Первые примеры в обоих статьях совпадают с точностью до косметических отличий.
Твой async fn на самом деле enum, а Pin нужен потому, что Rust наступил на грабли самоссылающихся структур