Menu
Coddy logo textTech

Composant texte

Fait partie de la section Programmation Orientée Objet du Journey Rust de Coddy. Leçon 50 sur 61.

challenge icon

Défi

Facile

En vous appuyant sur le trait Draw que vous avez créé lors de la leçon précédente, ajoutons notre premier véritable composant d’interface utilisateur : un TextField. Ce composant représentera un élément d’affichage de texte dans notre système de documents.

Vous allez enrichir votre projet avec un nouveau fichier de module :

  • draw.rs : conservez votre trait Draw du défi précédent.
  • text_field.rs : créez une structure TextField avec un champ public content (un String). Implémentez le trait Draw pour TextField afin que l’appel de draw() affiche le texte dans un format spécifique : Text: {content}
  • main.rs : importez les deux modules et créez une instance de TextField. Appelez sa méthode draw() pour afficher le composant.

N’oubliez pas que votre module text_field doit utiliser le trait Draw du module draw. Vous pouvez y accéder avec crate::draw::Draw, puisque les deux modules font partie de la même crate.

L’entrée suivante sera fournie :

  • Une chaîne représentant le contenu du champ de texte

Votre sortie doit respecter exactement le format suivant :

Text: Hello World

Essayez vous-même

mod draw;
mod text_field;

use draw::Draw;

pub struct Label {
    pub text: String,
}

impl Draw for Label {
    fn draw(&self) {
        println!("{}", self.text);
    }
}

fn main() {
    let mut input = String::new();
    std::io::stdin().read_line(&mut input).expect("Failed to read line");
    let content = input.trim().to_string();

    // TODO : Créer une instance de TextField et appeler draw() dessus
}

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur Rust en ligne