Documentación de proyectos Rust: guía completa de la A a la Z

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: Por qué la documentación en Rust no es un lujo, sino una necesidad

\n\n

Rust es famoso por su gestión segura de la memoria, su rendimiento y su estricto sistema de tipos. Sin embargo, incluso el código más elegante es inútil si nadie entiende cómo usarlo. La documentación de calidad es el puente entre su código y los usuarios (incluyéndose a usted mismo seis meses después).

\n\n

Afortunadamente, Rust incorpora potentes herramientas para la generación automática de documentación directamente desde el código fuente. En este artículo, analizaremos todo el proceso: desde comentarios simples hasta la creación de documentación completa con ejemplos, enlaces e incluso fórmulas matemáticas.

\n\n

1. Fundamentos: comentarios doc y rustdoc

\n\n

En Rust existen dos tipos de comentarios: los normales (// y /* */) y los de documentación (/// y //!). Estos últimos son procesados por la utilidad rustdoc, que genera documentación HTML.

\n\n

1.1. Comentarios doc externos e internos

\n\n
    \n
  • /// — comentario externo. Se escribe antes del elemento (función, estructura, trait) y lo describe.
  • \n
  • //! — comentario interno. Se utiliza para documentar el propio módulo, crate o archivo.
  • \n
\n\n
/// Calcula el factorial de un número n.\n///\n/// # Ejemplos\n/// ```\n/// let result = factorial(5);\n/// assert_eq!(result, 120);\n/// ```\npub fn factorial(n: u32) -> u32 {\n    (1..=n).product()\n}\n\n//! # Mi super crate\n//!\n//! Este crate proporciona utilidades para trabajar con matemáticas.\n//! Para más detalles, consulte la [documentación](https://example.com).
\n\n

1.2. Ejecutar la generación de documentación

\n\n

Para generar la documentación, ejecute el comando:

\n\n
cargo doc --open
\n\n

Este comando escaneará todos los comentarios doc en su proyecto, creará archivos HTML en la carpeta target/doc/ y los abrirá en el navegador. Verá una página con la lista de módulos, funciones y estructuras, todo como en docs.rs.

\n\n

2. Secciones de documentación: cómo hacerla legible

\n\n

Simplemente escribir un comentario no es suficiente. Para que la documentación sea útil, debe estar estructurada. rustdoc admite Markdown, por lo que puede usar encabezados, listas, enlaces e incluso bloques de código.

\n\n

2.1. Secciones estándar

\n\n

Se acostumbra a usar las siguientes secciones (comienzan con # ):

\n\n
    \n
  • # Examples — uno o más ejemplos de uso.
  • \n
  • # Panics — en qué casos la función entra en pánico.
  • \n
  • # Errors — si la función devuelve un Result, describa los posibles errores.
  • \n
  • # Safety — obligatoria para funciones unsafe.
  • \n
  • # Arguments — descripción de los parámetros (aunque a menudo se describen directamente en el texto).
  • \n
\n\n
/// Lee el contenido de un archivo y lo devuelve como una cadena.\n///\n/// # Arguments\n/// * `path` — ruta al archivo.\n///\n/// # Errors\n/// Devuelve `io::Error` si el archivo no existe o no es legible.\n///\n/// # Panics\n/// Entra en pánico si la ruta contiene un byte nulo.\n///\n/// # Examples\n/// ```\n/// let content = read_file("hello.txt").unwrap();\n/// println!("{}", content);\n/// ```\npub fn read_file(path: &str) -> Result<String, std::io::Error> {\n    std::fs::read_to_string(path)\n}
\n\n

2.2. Enlaces y referencias cruzadas

\n\n

Puede hacer referencia a otros elementos del código. rustdoc los convertirá automáticamente en hipervínculos:

\n\n
/// Utiliza la función [`factorial`] para calcular combinaciones.\n/// Véase también el módulo [`math::combinatorics`].\npub fn combinations(n: u32, k: u32) -> u32 {\n    factorial(n) / (factorial(k) * factorial(n - k))\n}
\n\n

Si necesita hacer referencia a una

Blogs

Book Recommendations