Menu
Coddy logo textTech

Componente di testo

Fa parte della sezione Programmazione orientata agli oggetti del percorso Rust di Coddy. Lezione 50 di 61.

challenge icon

Sfida

Facile

Partendo dal trait Draw che hai creato nella lezione precedente, aggiungiamo il nostro primo vero componente UI: un TextField. Questo componente rappresenterà un elemento di visualizzazione del testo nel nostro sistema di documenti.

Espanderai il tuo progetto con un nuovo file di modulo:

  • draw.rs: Mantieni il trait Draw della sfida precedente.
  • text_field.rs: Crea una struct TextField con un campo pubblico content (una String). Implementa il trait Draw per TextField, in modo che chiamando draw() venga stampato il testo in un formato specifico: Text: {content}
  • main.rs: Includi entrambi i moduli e crea un'istanza di TextField. Chiama il suo metodo draw() per visualizzare il componente.

Ricorda che il tuo modulo text_field deve usare il trait Draw del modulo draw. Puoi accedervi con crate::draw::Draw, poiché entrambi i moduli fanno parte dello stesso crate.

Verrà fornito il seguente input:

  • Una stringa che rappresenta il contenuto del campo di testo

Il tuo output dovrà seguire questo formato esatto:

Text: Hello World

Provalo tu

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: Crea un'istanza di TextField e chiama draw() su di essa
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Rust online