Menu
Coddy logo textTech

Récapitulatif - Lecteur multimédia

Fait partie de la section Object Oriented Programming du Journey Rust de Coddy — leçon 34 sur 61.

challenge icon

Défi

Facile

Construisons un système de lecteur multimédia simple qui démontre comment différents types de médias peuvent partager une interface commune via les traits !

Vous organiserez votre code sur trois fichiers :

  • playable.rs : Définissez un trait public Playable avec une méthode play(&self) qui affiche une sortie lorsqu'elle est appelée. Ce trait représente la capacité partagée que tous les types de médias posséderont.
  • media.rs : Créez deux structures publiques qui implémentent votre trait :
    • Audio — avec un champ public title (String) qui affiche Playing audio: {title} lorsqu'il est lu
    • Video — avec un champ public title (String) qui affiche Playing video: {title} lorsqu'il est lu
  • main.rs : Rassemblez vos modules et créez des instances des deux types de médias en utilisant les entrées fournies. Appelez la méthode play sur chacune pour démontrer comment le même trait produit des sorties différentes selon le type de média.

Votre sortie doit suivre ce format :

Playing audio: {audio_title}
Playing video: {video_title}

Par exemple, avec les entrées Bohemian Rhapsody et The Matrix :

Playing audio: Bohemian Rhapsody
Playing video: The Matrix

Vous recevrez deux entrées : un titre audio et un titre vidéo.

Essayez vous-même

mod playable;
mod media;

use media::{Audio, Video};
use playable::Playable;

fn main() {
    // Lire l'entrée
    let mut audio_title = String::new();
    std::io::stdin().read_line(&mut audio_title).expect("Failed to read line");
    let audio_title = audio_title.trim().to_string();
    
    let mut video_title = String::new();
    std::io::stdin().read_line(&mut video_title).expect("Failed to read line");
    let video_title = video_title.trim().to_string();
    
    // TODO: Créer une instance Audio avec audio_title
    
    // TODO: Créer une instance Video avec video_title
    
    // TODO: Appeler play() sur les deux instances
}

Toutes les leçons de Object Oriented Programming