Generador de código Swift basado en SwiftSyntax que usa plantillas para crear código repetitivo, como mocks e implementaciones de Equatable y Codable.
dtolnay/proc-macro-workshop
Un taller práctico con cinco proyectos de macros procedurales de Rust, cada uno con un esqueleto y una suite de pruebas trybuild para completar.
- Estrellas
- 4,873
- Forks
- 1,216
- Issues abiertos
- 3
- Último commit
- hace 3 meses
¿Qué es?
Este repositorio es un taller para aprender a escribir macros procedurales de Rust, es decir, funciones de Rust que generan código de Rust durante la compilación. Incluye cinco proyectos: una macro derive para el patrón builder, una macro derive Debug personalizable que acepta cadenas de formato por campo, una macro tipo función seq! que genera copias indexadas del código, una macro de atributo #[sorted] que señala como errores de compilación las variantes de enum desordenadas y un atributo #[bitfield] que empaqueta los campos de una struct en un arreglo de bytes y genera getters y setters.
Cada proyecto incluye un esqueleto y una suite de pruebas en su directorio tests. Las pruebas se ejecutan con trybuild, que comprueba tanto las expansiones correctas como los mensajes exactos del compilador para el código que debería fallar al compilar. El taller propone un orden para avanzar: empezar con derive(Builder) y luego elegir entre los otros proyectos según quieras enfocarte en los límites de traits, el análisis personalizado de entradas o los diagnósticos.
El repositorio también explica técnicas para depurar macros, como usar cargo expand e imprimir los flujos de tokens generados en stderr.
Funciones clave
- 01Cinco proyectos progresivos que abarcan macros derive, tipo función y de atributo.
- 02Suites de pruebas basadas en trybuild que comprueban la salida exacta de errores del compilador.
- 03Código esqueleto y activación gradual de las pruebas para cada proyecto.
- 04Orientación para depurar con cargo expand e imprimir flujos de tokens.
- 05Orden de aprendizaje sugerido según tus intereses.
Casos de uso
- Aprender macros procedurales de Rust por primera vez mediante ejercicios guiados.
- Practicar el manejo de límites de traits en macros derive genéricas.
- Prepararse para escribir diagnósticos personalizados en tiempo de compilación para una biblioteca de Rust.
- Estudiar cómo generar mediante una macro una API para una struct empaquetada a nivel de bits.
Inicio rápido
- 1
Clona el repositorio y entra en un directorio del proyecto, como builder
- 2
Ejecuta la suite de pruebas de ese proyecto
cargo test
Temas
Preguntas frecuentes
- ¿Qué es proc-macro-workshop?
- Un taller práctico con cinco proyectos de macros procedurales de Rust, cada uno con un esqueleto y una suite de pruebas trybuild para completar. Este repositorio es un taller para aprender a escribir macros procedurales de Rust, es decir, funciones de Rust que generan código de Rust durante la compilación. Incluye cinco proyectos: una macro derive para el patrón builder, una macro derive Debug personalizable que acepta cadenas de formato por campo, una macro tipo función seq! que genera copias indexadas del código, una macro de atributo #[sorted] que señala como errores de compilación las variantes de enum desordenadas y un atributo #[bitfield] que empaqueta los campos de una struct en un arreglo de bytes y genera getters y setters.
- ¿proc-macro-workshop es gratuito? ¿Qué licencia tiene?
- proc-macro-workshop es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿proc-macro-workshop sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de proc-macro-workshop fue el 6 ago 2026.
- ¿Para qué puedo usar proc-macro-workshop?
- Aprender macros procedurales de Rust por primera vez mediante ejercicios guiados. Practicar el manejo de límites de traits en macros derive genéricas. Prepararse para escribir diagnósticos personalizados en tiempo de compilación para una biblioteca de Rust. Estudiar cómo generar mediante una macro una API para una struct empaquetada a nivel de bits.
- ¿Cómo se instala proc-macro-workshop?
- Clona el repositorio y entra en un directorio del proyecto, como builder Ejecuta la suite de pruebas de ese proyecto: cargo test
- ¿Dónde consigo proc-macro-workshop?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/dtolnay/proc-macro-workshop
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Taller paso a paso en Go para crear un agente de programación con la API de Claude, añadiendo herramientas de archivos, shell y búsqueda una por una.
Taller práctico con notebooks de Jupyter para enseñar a desarrolladores a crear aplicaciones de IA generativa con modelos fundacionales en Amazon Bedrock.
Pequeños ejercicios de Rust para aprender a leer y escribir código, pensados para hacerlos junto con el libro oficial de Rust.
Colección educativa de algoritmos clásicos y estructuras de datos implementados en Rust.
Fuente oficial del libro «The Rust Programming Language», compilado con mdBook para ofrecer su edición gratuita en línea.