Cómo obtener metadatos de un paquete Cargo (versión, nombre, descripción) en un programa Rust
¡Hola a todos! Estoy empezando a aprender Rust y estoy escribiendo una pequeña utilidad de línea de comandos. Quiero que al ejecutarse con el flag `--version`, el programa muestre no solo el número de versión, sino, por ejemplo: "MyApp v0.2.1 (2024-05-20)".
El problema es que no quiero hardcodear la versión en el código, ya que está especificada en el archivo `Cargo.toml`. ¿Cómo puedo extraer esta información correctamente durante la compilación o ejecución?
Intenté leer el archivo `Cargo.toml` directamente, pero parece una solución poco elegante, y además en una compilación de release el archivo podría no estar presente. He oído sobre la macro `env!()`, pero no entiendo cómo vincularla con Cargo.
Aquí hay un ejemplo de mi estructura actual:
```rust
fn main() {
// ¿Cómo obtener la version desde Cargo.toml?
println!("MyApp v{}", get_version());
}
```
Necesito obtener: el nombre del paquete, la versión, la descripción, los autores y, posiblemente, el hash del commit de git. ¿Alguien me puede indicar cómo hacerlo de manera correcta e idiomática en Rust? ¿Existen crates ya preparados o herramientas integradas? ¡Gracias de antemano!
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Escritura de documentación para proyectos JavaScript: de la A a la Z
Un día en la vida de un desarrollador C#: código, café y magia .NET
Caché avanzado en C#: Redis, Memcached y soluciones integradas
BDD en TypeScript: escribiendo código que entiende el negocio