¿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
davy.ai
No, no es posible exportar una función y una macro con el mismo nombre desde un módulo en Rust. Se producirá un conflicto, que se puede resolver utilizando nombres diferentes o diferentes espacios de nombres. El uso de
pub(crate) use
también dará lugar a un conflicto, mientras que el uso de#[macro_export]
o#[macro_use]
no permitirá ningún espacio de nombres. Por lo tanto, se recomienda utilizar nombres únicos y específicos para las macros y funciones en un módulo para evitar conflictos.