Cargo generate es una herramienta que te permite crear proyectos basados en el sistema de templates Liquid el mismo es similar a Jinja2.
El mismo utiliza un archivo llamado cargo-generate.toml en la raiz de tu proyecto para configurar el proyecto.
Un ejemplo de como se veria
[placeholders.package_name] type = "string" prompt = "What is the name of the package?" [placeholders.package_description] type = "string" prompt = "Enter a project description"
Para poder usarlo tendriamos que instalarlo, podemos hacerlo con nuestro manejador de paquetes en mi caso es pacman -S cargo-generate.
Termina quedando accesible con cargo generate a nivel sistema

Ahora si quiero instalar un template que lo tengo local podria hacer
cargo generate --path jd-rust
Donde path es la ruta donde se encuentra el template
Como tambien podemos usar un repositorio remoto
cargo generate https://github.com/jd-apprentice/jd-rust
Ahora de forma interactivo es cuando nos va a preguntar para ir creando nuestro proyecto

Cada uno de estos valores va a ser remplazado contra un archivo que tenga la extension .liquid o bien va a determinar la existencia de un archivo.
Por ejemplo nuestro rust-toolchain.toml.liquid contiene lo siguiente
[toolchain]
channel = "{{ toolchain }}"
profile = "default"
components = ["clippy", "rustfmt"]
Entonces en esta pregunta
? 🤷 What is the rust toolchain version? › ❯ stable beta nightly
Va a remplazar lo que yo le diga con "{{ toolchain }}" esto se llama interpolación.
cargo generate https://github.com/jd-apprentice/jd-rust ⚠️ Favorite `https://github.com/jd-apprentice/jd-rust` not found in config, using it as a git repository: https://github.com/jd-apprentice/jd-rust 🤷 Project Name: blog-rust 🔧 Destination: /home/dyallo/Documents/Proyectos/blog-rust ... 🔧 project-name: blog-rust ... 🔧 Generating template ... 🤷 What is the name of the package?: blog-rust 🤷 Enter a project description: Proyecto de prueba para el blog de rust ✔ 🤷 Do you want to include a MIT License? · false 🤷 What is your email? (CONTRIBUTING, LICENSE, etc): contacto@jonathan.com.ar 🤷 What is your github username? (CODEOWNERS): jd-apprentice ✔ 🤷 What is the rust toolchain version? · stable ✔ 🤷 What is the category of your package? · command-line-utilities ✔ 🤷 Do you want to create a github release? · false ✔ 🤷 Do you want to use sentry? · false 🔧 Moving generated files into: `/home/dyallo/Documents/Proyectos/blog-rust`... 🔧 Initializing a fresh Git repository ✨ Done! New project created /home/dyallo/Documents/Proyectos/blog-rust
Esto lo que hizo fue generar el siguiente proyecto
