Anuncios

Bienvenidos sean a este post, hoy veremos algunas herramientas para cargo.

Anuncios

Como mencionamos antes, este post será para comentar algunas herramientas complementarias a cargo. Hay varias formas de instalarlo pero les voy a dejar la que me pareció más práctica. Su sintaxis es la siguiente:

cargo install <herramienta>
Anuncios

En donde figura herramienta deben reemplazarlo por el título de cada una que veremos a continuación. Con esto comentado, pasemos a hablar sobre la primer herramienta.

Anuncios

cargo-watch

Es una herramienta interesante para hacer un chequeo corto, rápido de nuestro código para compilarlo. Basicámentte hace un llamado a la opción check de cargo. Esta es su conducta predeterminada si lo ejecutamos sin opciones pero usando –help podemos acceder a un listado de los disponibles. Veamos como es el comando para instalarlo:

cargo install cargo-watch
Anuncios

Una vez instalado podrá correrlo desde cualquiera de sus proyectos, les muestro un llamado simple a este:

$ cargo-watch
[Running 'cargo check']
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.03s
[Finished running. Exit status: 0]
Anuncios

En este caso, al ser un ejemplo simple y correcto no nos mostrará ninguna notificación, pasemos al siguiente comando.

Anuncios

cargo-edit

Esta herramienta es utilizada para editar dependencias en Cargo.toml mediante la línea de comandos. Entre las modificaciones que podemos realizar no solamente son con las dependencias, sino también las dev y las build. Así como también cualquier versión específica de una dependencia. Para instalarlo deben usar el siguientte comando:

cargo install cargo-edit
Anuncios

Una vez instalado tendremos los siguientes comandos disponibles:

  • cargo-add: agrega una dependencia
  • cargo-rm: remueve una dependencia
  • cargo-set-version: específica una versión
  • cargo-upgrade: actualiza las mismas
Anuncios

cargo-deb

Esta es orientada para las distribuciones de linux basadas en debian porque es para crear paquetes debian (.deb) de instalación para nuestras aplicaciones. El comando para instalarlo es el siguiente:

cargo install cargo-deb
Anuncios

Sobre esta herramienta hablaremos en otro post.

Anuncios

cargo-outdated

Esta herramienta nos muestra cuales son las crates desactualizadas en nuestro proyecto. El comando para instalarlo es la siguiente:

cargo install cargo-outdated
Anuncios

Estas herramientas son muy útiles para trabajar con nuestros proyectos, dadas las tareas que nos permiten trabajar. Si bien podemos usarlas con los nombres indicados en los titulos, están también fueron agregadas como herrramientas para cargo. En todos los casos, debemos usar a la palabra post-guión, les dejo un ejemplo para entenderlo:

$ cargo watch
Anuncios

clippy

Esta es una herramienta muy particular porque nns permite analizar nuestros códigos y optimizarlos. Una particularidad de esta herramienta es que posee un conjunto de lints*, los cuales son alrededor de 291 pero pueden ser más, y nos permiten optimizarlo. En mi caso, al momento de verificar su instalación ya se encontraba instalado pero en caso de no tenerlo deben usar el siguiente comando:

rustup component add clippy-preview
Anuncios

Para verificar como funciona vamos a tomar el código del post anterior y en lib.rs vamos a modificarlo de la siguiente manera:

Rust
pub fn saludar() {
let x: bool = true;
if x == true {
println!("Prueba");
}
println!("Holis");
}
Anuncios

Este es un código tonto simple, esto nos será especialmente útil en un momento. En el directorio raíz del workspace corran el siguiente comado para usar a clippy:

$ cargo clippy
Anuncios

Este ejecutará a la herramienta y nos devolverá la siguiente salida:

$ cargo clippy
warning: equality checks against true are unnecessary
--> mi_crate/src/lib.rs:3:5
|
3 | if x == true {
| ^^^^^^^^^ help: try: `x`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#bool_comparison
= note: `#[warn(clippy::bool_comparison)]` on by default
warning: `mi_crate` (lib) generated 1 warning (run `cargo clippy --fix --lib -p mi_crate` to apply 1 suggestion)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.06s
$
Anuncios

Como pueden ver nos muestra una modificación que podemos realizar para no ser redundante con la comparación. Porque de esta manera sabemos que se ejecutará cuando x sea verdadero. De lo contrario, lo ignorará completamente. Es una gran herramienta para mejorar nuestros códigos pero recuerden que no contendrá todas las situaciones posibles pero se irán agregando más a medida que pasé el tiempo.

Anuncios

Antes de finalizar, recuerden que pueden usar a –help en cada uno de ellos para ver las distintas opciones disponibles. Al estar agregados en el path y en cargo, podemos usarlo en cualquier parte del S.O. Y siempre deben correrlo desde el directorio del proyecto a verificar o modificar.

Anuncios
(*) lint es un término para un conjunto de códigos pensados para optimizar los nuestros.
Anuncios

En resumen, hoy hemos visto algunas herramientas para cargo, que son, para que sirven, y como instalarlas. Tengan este post a mano porque los usaremos para algunos que otros casos. Espero les haya sido de utilidad y les dejo un link a GitHub donde estan los codigos creados hoy:

https://github.com/tinchicus/RUST-codes/tree/main/extendiendo%20cargo

Les dejo algunas de mis redes sociales para seguirme o recibir una notificacion cada vez que subo un nuevo post:

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50