1. 1. Introducción
    1. 1.1. Traducciones
    2. 1.2. Contribuciones
  2. 2. Idiomatismos (idioms)
    1. 2.1. El uso de tipos prestados como argumentos
    2. 2.2. Concatenar String con format!
    3. 2.3. Constructores
    4. 2.4. El rasgo Default
    5. 2.5. Las colecciones son punteros inteligentes
    6. 2.6. Finalización en destructores
    7. 2.7. mem::{take(_), replace(_)}
    8. 2.8. On-Stack Dynamic Dispatch
    9. 2.9. Interfaz de funciones extranjeras (Foreign function interface - FFI)
      1. 2.9.1. idiomatismos sobre errores (Errores idiomáticos)
      2. 2.9.2. Aceptar cadenas de caracteres
      3. 2.9.3. Pasar cadenas de caracteres
    10. 2.10. Iterar sobre un Option
    11. 2.11. Pasar variables a un Closure
    12. 2.12. Privacidad para ser extensible
    13. 2.13. Inicialización fácil de documentación
    14. 2.14. Mutabilidad temporal
  3. 3. Patrones de disñeo
    1. 3.1. De comportamiento (behavioural)
      1. 3.1.1. Comando
      2. 3.1.2. Intérprete
      3. 3.1.3. Nuevo tipo (Newtype)
      4. 3.1.4. Guardas RAII
      5. 3.1.5. Estrategia
      6. 3.1.6. Visitante
    2. 3.2. Creacionales
      1. 3.2.1. Constructor (builder)
      2. 3.2.2. Plegado (Fold)
    3. 3.3. Estructurales
      1. 3.3.1. Composición de estructuras
      2. 3.3.2. Preferi Crates (librerías) pequeñas
      3. 3.3.3. Contener código inseguro en módulos pequeños
    4. 3.4. Interfaz de funciones extranjeras (Foreign function interface - FFI)
      1. 3.4.1. APIs basadas en objetos
      2. 3.4.2. Consolidación de tipos en envoltoríos (Wrappers)
  4. 4. Antipatrones
    1. 4.1. Clonar para satisfacer el validador de préstamo (borrow checker)
    2. 4.2. #[deny(warnings)]
    3. 4.3. Polimorfismo con Deref
  5. 5. Programación funcional
    1. 5.1. Paradigmas de programación
    2. 5.2. Genéricos como clases de tipo
  6. 6. Recursos adicionales
    1. 6.1. Principios de diseño

Rust: patrones de diseño

Iterar sobre un Option