Генератор кода для Swift на базе SwiftSyntax, который с помощью шаблонов создаёт шаблонный код: моки, реализации Equatable и Codable.
dtolnay/proc-macro-workshop
Практический воркшоп из пяти проектов на Rust procedural macros: в каждом есть заготовка и набор тестов trybuild, которые нужно реализовать.
- Звёзды
- 4,873
- Форки
- 1,216
- Открытые issues
- 3
- Последний коммит
- 3 месяца назад
Что это?
Этот репозиторий — обучающий воркшоп по написанию Rust procedural macros — функций на Rust, которые генерируют код Rust во время компиляции. В нём пять проектов: derive-макрос для паттерна Builder, настраиваемый Debug derive, принимающий строки формата для каждого поля, функциональный макрос seq!, создающий индексированные копии кода, атрибутный макрос #[sorted], который сообщает об отсортированных не по порядку вариантах enum с помощью ошибок компиляции, и атрибут #[bitfield], который упаковывает поля структуры в массив байтов и генерирует геттеры и сеттеры.
Каждый проект поставляется в виде заготовки с набором тестов в каталоге tests. Тесты запускаются с помощью trybuild: он проверяет и успешные раскрытия макросов, и точные сообщения компилятора для кода, который не должен компилироваться. Воркшоп предлагает последовательность обучения: начать с derive(Builder), а затем выбрать один из остальных проектов в зависимости от того, хотите ли вы сосредоточиться на ограничениях трейтов, разборе пользовательского ввода или диагностике.
В репозитории также описаны способы отладки макросов, например использование cargo expand и вывод сгенерированных потоков токенов в stderr.
Ключевые возможности
- 01Пять проектов разного уровня сложности, посвящённых derive-, функциональным и атрибутным макросам.
- 02Наборы тестов на основе trybuild, проверяющие точный вывод ошибок компилятора.
- 03Заготовки кода и пошаговое включение тестов для каждого проекта.
- 04Рекомендации по отладке с помощью cargo expand и вывода потоков токенов.
- 05Рекомендуемый порядок обучения с учётом ваших интересов.
Сценарии использования
- Изучение Rust procedural macros с нуля на практических упражнениях с подсказками.
- Практика работы с ограничениями трейтов в обобщённых derive-макросах.
- Подготовка к написанию собственной диагностики ошибок компиляции для библиотеки на Rust.
- Изучение того, как с помощью макроса можно сгенерировать API структуры с битовой упаковкой.
Быстрый старт
- 1
Клонируйте репозиторий и перейдите в каталог проекта, например builder
- 2
Запустите набор тестов для этого проекта
cargo test
Темы
Частые вопросы
- Что такое proc-macro-workshop?
- Практический воркшоп из пяти проектов на Rust procedural macros: в каждом есть заготовка и набор тестов trybuild, которые нужно реализовать. Этот репозиторий — обучающий воркшоп по написанию Rust procedural macros — функций на Rust, которые генерируют код Rust во время компиляции. В нём пять проектов: derive-макрос для паттерна Builder, настраиваемый Debug derive, принимающий строки формата для каждого поля, функциональный макрос seq!, создающий индексированные копии кода, атрибутный макрос #[sorted], который сообщает об отсортированных не по порядку вариантах enum с помощью ошибок компиляции, и атрибут #[bitfield], который упаковывает поля структуры в массив байтов и генерирует геттеры и сеттеры.
- proc-macro-workshop можно использовать бесплатно? Какая у него лицензия?
- proc-macro-workshop распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- proc-macro-workshop всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в proc-macro-workshop — 6 авг. 2026 г..
- Для чего можно использовать proc-macro-workshop?
- Изучение Rust procedural macros с нуля на практических упражнениях с подсказками. Практика работы с ограничениями трейтов в обобщённых derive-макросах. Подготовка к написанию собственной диагностики ошибок компиляции для библиотеки на Rust. Изучение того, как с помощью макроса можно сгенерировать API структуры с битовой упаковкой.
- Как установить proc-macro-workshop?
- Клонируйте репозиторий и перейдите в каталог проекта, например builder Запустите набор тестов для этого проекта: cargo test
- Где скачать proc-macro-workshop?
- Исходный код и инструкции по установке — на GitHub: https://github.com/dtolnay/proc-macro-workshop
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Практический пошаговый воркшоп на Go, в котором вы создадите coding agent на базе Claude API и постепенно добавите инструменты для работы с файлами, shell и поиска.
Практический воркшоп на Jupyter Notebook, который учит разработчиков создавать приложения с генеративным ИИ на базе foundation-моделей в Amazon Bedrock.
Небольшие упражнения по Rust, которые помогают научиться читать и писать код на Rust и рассчитаны на прохождение вместе с официальной книгой по Rust.
Коллекция классических алгоритмов и структур данных на Rust для обучения.
Официальный исходный код книги «The Rust Programming Language», собранной с помощью mdBook в бесплатную онлайн-версию.