Repolode
dtolnay

dtolnay/proc-macro-workshop

Workshop prático com cinco projetos de macros procedurais em Rust, cada um com um esqueleto e uma suíte de testes trybuild para implementar.

Estrelas
4,873
Forks
1,216
Issues abertas
3
Último commit
há 3 meses

O que é?

Este repositório é um workshop para aprender a escrever macros procedurais em Rust, que são funções que geram código Rust durante a compilação. Ele contém cinco projetos: uma derive macro para o padrão builder, uma derive de Debug personalizável que aceita strings de formatação por campo, uma macro semelhante a função chamada seq! que gera cópias indexadas de código, uma macro de atributo #[sorted] que sinaliza variantes de enum fora de ordem como erros de compilação e um atributo #[bitfield] que agrupa campos de uma struct em um array de bytes e gera getters e setters.

Cada projeto vem com um esqueleto e uma suíte de testes no diretório tests. Os testes são executados com trybuild, que verifica tanto expansões bem-sucedidas quanto as mensagens exatas de erro do compilador para o código que deveria falhar na compilação. O workshop sugere uma sequência, começando por derive(Builder) e depois escolhendo entre os outros projetos conforme você queira se concentrar em limites de traits, análise personalizada de entrada ou diagnósticos.

O repositório também explica técnicas de depuração de macros, como usar cargo expand e imprimir fluxos de tokens gerados em stderr.

Recursos principais

  • 01Cinco projetos com níveis de dificuldade progressivos, cobrindo macros derive, semelhantes a funções e de atributo.
  • 02Suítes de testes baseadas em trybuild que verificam a saída exata de erros do compilador.
  • 03Código esqueleto e ativação gradual dos testes para cada projeto.
  • 04Orientações de depuração usando cargo expand e impressão de fluxos de tokens.
  • 05Ordem de aprendizado sugerida de acordo com seus interesses.

Casos de uso

  • Aprender macros procedurais em Rust pela primeira vez com exercícios guiados.
  • Praticar o tratamento de limites de traits em macros derive genéricas.
  • Preparar-se para escrever diagnósticos personalizados de compilação para uma biblioteca Rust.
  • Estudar como gerar, com uma macro, uma API de struct com campos compactados em bits.

Início rápido

  1. 1

    Clone o repositório e acesse um diretório do projeto, como builder

  2. 2

    Execute a suíte de testes desse projeto

    cargo test

Tópicos

#rust#procedural-macros#metaprogramming#learning#workshop#trybuild#code-generation

Perguntas frequentes

O que é proc-macro-workshop?
Workshop prático com cinco projetos de macros procedurais em Rust, cada um com um esqueleto e uma suíte de testes trybuild para implementar. Este repositório é um workshop para aprender a escrever macros procedurais em Rust, que são funções que geram código Rust durante a compilação. Ele contém cinco projetos: uma derive macro para o padrão builder, uma derive de Debug personalizável que aceita strings de formatação por campo, uma macro semelhante a função chamada seq! que gera cópias indexadas de código, uma macro de atributo #[sorted] que sinaliza variantes de enum fora de ordem como erros de compilação e um atributo #[bitfield] que agrupa campos de uma struct em um array de bytes e gera getters e setters.
proc-macro-workshop é gratuito? Qual é a licença?
proc-macro-workshop é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
proc-macro-workshop ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de proc-macro-workshop foi em 6 de ago. de 2026.
Para que posso usar proc-macro-workshop?
Aprender macros procedurais em Rust pela primeira vez com exercícios guiados. Praticar o tratamento de limites de traits em macros derive genéricas. Preparar-se para escrever diagnósticos personalizados de compilação para uma biblioteca Rust. Estudar como gerar, com uma macro, uma API de struct com campos compactados em bits.
Como instalar proc-macro-workshop?
Clone o repositório e acesse um diretório do projeto, como builder Execute a suíte de testes desse projeto: cargo test
Onde consigo proc-macro-workshop?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/dtolnay/proc-macro-workshop

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados