Что это такое?
Альтернатива макросу tokio::select!, которую можно форматировать с помощью rustfmt.
Библиотека решает проблему несовместимости между tokio::select! и rustfmt. Вместо того чтобы мириться с неформатируемым кодом, можно подключить эту обёртку и получить ту же семантику, но с поддержкой автоматического форматирования.
Для разработчиков на Rust, которые используют асинхронную библиотеку Tokio и хотят поддерживать код в едином стиле с помощью rustfmt.
Стандартный макрос tokio::select! ломает работу rustfmt — код остаётся неотформатированным, что портит читаемость и нарушает конвенции проекта.
Проект предоставляет альтернативный макрос tokio_select!, который использует синтаксис match .. вместо списка веток. Это позволяет rustfmt корректно обрабатывать конструкцию и форматировать её как обычный Rust-код. Макрос полностью повторяет функциональность оригинала, включая поддержку условий (if) и biased-режима.
Библиотека решает проблему несовместимости между tokio::select! и rustfmt. Вместо того чтобы мириться с неформатируемым кодом, можно подключить эту обёртку и получить ту же семантику, но с поддержкой автоматического форматирования.
Для обхода ограничений rustfmt используется странный синтаксис с .. — это паттерн, который компилятор Rust принимает как корректный, но при этом вся конструкция становится валидным выражением.
Стоит попробовать, если вы используете Tokio и цените единообразие кода. Проект решает конкретную проблему, делает это элегантно и не добавляет лишних зависимостей.
Проект скромный, но актуальный: последний релиз 2024 года, есть тесты, документация. Звёзд мало, но проблема, которую он решает, узкоспециализированная.
Карточка собрана по данным GitHub, README и структуре репозитория. Это не официальная документация проекта.
Альтернатива макросу tokio::select!, которую можно форматировать с помощью rustfmt.
Для Rust-разработчиков, которые пишут асинхронный код на Tokio и используют автоматическое форматирование.
Если проект подходит под ваш сценарий, можем помочь с установкой, интеграцией, доработкой или аккуратным форком под вашу инфраструктуру.