1. Bienvenue à Comprehensive Rust (le guide complet de Rust) 🦀
  2. Comment présenter le cours
    1. Structure du cours
    2. Raccourcis clavier
    3. Traductions
  3. Utiliser Cargo
    1. Écosystème de Rust
    2. Exemples de code
    3. Exécuter Cargo localement
  4. Jour 1 : Matin
  5. Bienvenue
  6. Bonjour le monde!
    1. Qu'est-ce que Rust ?
    2. Benefits of Rust
    3. Playground
  7. Types and Values
    1. Bonjour le monde!
    2. Variables
    3. Values
    4. Arithmetic
    5. Inférence de type
    6. Exercise: Fibonacci
      1. Solutions
  8. Flux de contrôle
    1. expressions "si"
    2. Boucles for
      1. Boucles for
      2. loop
    3. pause et continue
      1. Labels
    4. Blocks and Scopes
      1. Portée et masquage
    5. Fonctions
    6. Macros
    7. Exercise: Collatz Sequence
      1. Solutions
  9. Jour 1 : Après-midi
  10. Bienvenue
  11. Tuples and Arrays
    1. Arrays
    2. Tuples
    3. Iterator
    4. Déstructuration des énumérations
    5. Exercise: Nested Arrays
      1. Solutions
  12. Références
    1. Références
    2. Références invalides
    3. Slices: &\[T\]
    4. Cordes
    5. Exercise: Geometry
      1. Solutions
  13. User-Defined Types
    1. Structures
    2. Structures tuple
    3. Énumérations
    4. statique
    5. const
    6. Type Aliases
    7. Exercise: Elevator Events
      1. Solutions
  14. Jour 2 : Matin
  15. Bienvenue
  16. Filtrage par motif
    1. Matching Values
    2. Déstructuration des énumérations
    3. Flux de contrôle
    4. Exercise: Expression Evaluation
      1. Solutions
  17. Read et Write
    1. Méthodes
    2. Traits
      1. Implémentation de traits non sécurisés
      2. Plus de traits
      3. Types scalaires
    3. Traits dérivés
    4. Exercices
      1. Solutions
  18. Génériques
    1. Fonctions externes
    2. Types de données génériques
    3. Génériques
    4. Traits lié
    5. Trait d'implémentation
    6. Exercise: Generic min
      1. Solutions
  19. Jour 2 : Après-midi
  20. Bienvenue
  21. Bibliothèque standard
    1. Bibliothèque standard
    2. Tests de documentation
    3. Durée
    4. Option, Résultat
    5. String
    6. Vec
    7. HashMap
    8. Exercices
      1. Solutions
  22. Bibliothèque standard
    1. Comparaison
    2. Itérateurs
    3. De et Dans
    4. Tester
    5. Lire et Ecrire
    6. Default, struct update syntax
    7. Fermetures
    8. Exercices
      1. Solutions
  23. Jour 3 : Matin
  24. Bienvenue
  25. Gestion de la mémoire
    1. Review of Program Memory
    2. Gestion automatique de la mémoire
    3. Possession
    4. Sémantique de déplacement
    5. Clone
    6. Types composés
    7. Drop
    8. Exercise: Builder Type
      1. Solutions
  26. Smart Pointers
    1. Boîte
    2. Rc
    3. Objets traits
    4. Exercise: Binary Tree
      1. Solutions
  27. Jour 3 : Après-midi
  28. Bienvenue
  29. Emprunts
    1. Emprunts
    2. Emprunts
    3. Interopérabilité
    4. Statistiques de santé
      1. Solutions
  30. Durées de vie
    1. Durées de vie dans les appels de fonction
    2. Durées de vie
    3. Durées de vie
    4. Exercise: Protobuf Parsing
      1. Solutions
  31. Jour 1 : Matin
  32. Bienvenue
  33. Itérateurs
    1. Itérateur
    2. IntoIterator
    3. FromIterator
    4. Exercise: Iterator Method Chaining
      1. Solutions
  34. Modules
    1. Modules
    2. Hiérarchie du système de fichiers
    3. Visibilité
    4. use, super, self
    5. Une bibliothèque d'interface graphique
      1. Solutions
  35. Tester
    1. Modules de test
    2. Autres projets
    3. Compiler Lints and Clippy
    4. Algorithme de Luhn
      1. Solutions
  36. Jour 1 : Après-midi
  37. Bienvenue
  38. Gestion des erreurs
    1. Paniques
    2. Iterator
    3. Conversions implicites
    4. "Erreur"
    5. De et Dans
    6. Gestion structurée des erreurs avec Result
      1. Solutions
  39. Rust non sécurisé (unsafe)
    1. Rust non sécurisé (unsafe)
    2. Déréférencement des pointeurs nus
    3. Variables statiques mutables
    4. Unions
    5. Appel de fonctions non sécurisées
    6. Implémentation de traits non sécurisés
    7. Enveloppe FFI sécurisée
      1. Solutions
  40. Android
  41. Bienvenue
  42. Installation
  43. Règles de compilation
    1. Binaire
    2. Bibliothèque
  44. AIDL
    1. service_anniversaire/src/lib.rs :
      1. Interface
      2. Service API
      3. Serveur
      4. Serveur
      5. Déployer
      6. Client
      7. Modification de l'API
      8. Mise en œuvre
    2. Types
      1. Primitive Types
      2. Types composés
      3. Objets traits
      4. Variables
      5. Sending Files
  45. Tester
    1. GoogleTest
    2. Mocking
  46. Journalisation
  47. Interopérabilité
    1. Avec C
      1. Appeler C avec Bindgen
      2. Appeler Rust depuis C
    2. Avec C++
      1. Modules de test
      2. Binaires Rust
      3. Generated C++
      4. C++ Bridge
      5. Types scalaires
      6. Shared Enums
      7. Gestion des erreurs
      8. Gestion des erreurs
      9. Additional Types
      10. Building for Android: C++
      11. Building for Android: Genrules
      12. Building for Android: Rust
    3. Avec Java
  48. Exercices
  49. Chromium
  50. Bienvenue
  51. Installation
  52. Comparing Chromium and Cargo Ecosystems
  53. Policy
  54. Règles de compilation
    1. Rust non sécurisé (unsafe)
    2. Depending on Rust Code from Chromium C++
    3. Visual Studio Code
    4. Exercices
  55. Tester
    1. rust_gtest_interop Library
    2. GN Rules for Rust Tests
    3. chromium::import! Macro
    4. Exercices
  56. Interopérabilité avec C
    1. Exemples
    2. Limitations of CXX
    3. Gestion des erreurs
      1. Gestion des erreurs
      2. Gestion des erreurs
    4. Using CXX in Chromium
    5. Exercices
  57. Adding Third Party Crates
    1. Configuring Cargo.toml
    2. Configuring gnrt_config.toml
    3. Downloading Crates
    4. Generating gn Build Rules
    5. Resolving Problems
      1. Build Scripts Which Generate Code
      2. Build Scripts Which Build C++ or Take Arbitrary Actions
    6. Depending on a Crate
    7. Reviews and Audits
    8. Checking into Chromium Source Code
    9. Keeping Crates Up to Date
    10. Exercices
  58. Bringing It Together - Exercise
  59. Solutions
  60. Bare Metal : Matin
  61. Bienvenue
  62. no_std
    1. Un exemple minimal
    2. allouer
  63. Microcontrôleurs
    1. MMIO brut
    2. PACs
    3. HAL Crates
    4. Board Support Crates
    5. Le modèle d'état de type
    6. embedded-hal
    7. probe-rs, cargo-embed
      1. Débogage
    8. Autres projets
  64. Exercices
    1. Boussole
    2. Solutions
  65. Bare Metal : Après-midi
  66. Processeurs d'applications
    1. Getting Ready to Rust
    2. Assembleur en ligne
    3. MMIO
    4. Écrivons un pilote UART
      1. Plus de traits
    5. Un meilleur pilote UART
      1. Bitflags
      2. Registres multiples
      3. Pilote
      4. Utilisation
    6. Journalisation
      1. Utilisation
    7. Exceptions
    8. Autres projets
  67. Crates utiles
    1. zérocopie
    2. aarch64-pagination
    3. buddy_system_allocator
    4. tinyvec
    5. tourner
  68. Android
    1. vmbase
  69. Exercices
    1. Pilote RTC
    2. Solutions
  70. Concurrence : Matin
  71. Bienvenue
  72. Threads
    1. Threads délimités
  73. Canaux
    1. Canaux illimités
    2. Canaux limités
  74. Envoyer et Synchroniser
    1. Envoyer
    2. Synchroniser
    3. Exemples
  75. État partagé
    1. Arc
    2. Mutex
    3. Exemple
  76. Exercices
    1. Dîner des philosophes
    2. Vérificateur de liens à plusieurs threads
    3. Solutions
  77. Concurrence : Après-midi
  78. Async Basics
    1. async/await
    2. Fermetures
    3. Garanties d'exécution
      1. Tokio
    4. Tâches
    5. Canaux asynchrones
  79. Flux de contrôle
    1. Join
    2. Select
  80. Pièges
    1. Bloquer l'exécuteur
    2. Pin
    3. Traits asynchrones
    4. Annulation
  81. Exercices
    1. Dîner des philosophes
    2. Broadcast Chat Application
    3. Solutions
  82. Derniers mots
  83. Merci!
  84. Glossary
  85. Autres ressources
  86. Crédits