es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Pueden compartirse macros de Rust entre ediciones?

Digamos que una macro Rust 2018 define una función async dentro de ella. La sintaxis que usaría sería incompatible con Rust 2015. Entonces, si estás compilando tu caja con la edición 2015, ¿no entraría en conflicto este código expandido desde la macro?

No estoy muy familiarizado con cómo funcionan las macros procedimentales o declarativas, pero imagino que necesitan producir código específico para cada edición porque su salida va a ser tratada de la misma manera que el resto del código. Si es así, ¿cómo puedo compartir las macros exportadas a través de los límites de la edición? ¿Necesito reescribirlas para cada edición? Eso no parece escalable, especialmente si se supone que las ediciones se publican cada 3 años aproximadamente.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Es posible compartir macros a través de límites de edición, pero requiere un poco de trabajo adicional. La macro debe ser escrita de una manera que sea compatible con ambas ediciones y debe ser explícitamente marcada como agnóstico de edición. Esto puede hacerse agregando el atributo #[edition = "..."] a la definición de la macro. Este atributo le dirá al compilador con qué edición es compatible la macro y el compilador usará la sintaxis apropiada al expandir la macro.

Comments are closed.