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.

Tag: RUST-MACROS

Interpola `ident` en una literal de cadena en `macro_rules!`

¿Es posible interpolar una variable macro_rules!, de tipo ident, en una cadena literal en una macro? En otras palabras, ¿es posible “escapar” las comillas dobles de la literal? // <code>trace_macros!</code> requires nightly <h1>![feature(trace_macros)]</h1> trace_macros!(true); macro_rules! export_mod_if_feature { ($system:ident) => { #[cfg(target_os = “$system”)] // <– el problema está aquí pub . . . Read more

¿Cómo exportar una función y una macro con el mismo nombre?

¿Es posible exportar una función y una macro con el mismo nombre desde un módulo? Ejemplo lib.rs: mod log; fn foo() { log::info!(“”); log::info(“”); } En log.rs: – Usar pub(crate) use info; tiene conflictos con pub fn info() { .. } Usar `#[macro_export]` y `#[macro_use]` no permite espacios de nombres

Analizando los argumentos de los macros de atributo en Rust.

Estoy escribiendo una macro de atributo y tratando de analizar los argumentos pasados ahí. Como: #[macro(Arg1, Arg2)] El problema es que no puedo encontrar la estructura correcta para analizarlo. Intenté analizarlo como Meta y MetaList, pero ninguno de ellos parece funcionar. pub fn some_macro(args: TokenStream, item: TokenStream) -> TokenStream { . . . Read more