Menu
Coddy logo textTech

Componente de texto

Parte de la sección Object Oriented Programming del Journey de Rust de Coddy. Lección 50 de 61.

challenge icon

Desafío

Fácil

Basándonos en el trait Draw que creaste en la lección anterior, vamos a añadir nuestro primer componente de interfaz de usuario real: un TextField. Este componente representará un elemento de visualización de texto en nuestro sistema de documentos.

Ampliarás tu proyecto con un nuevo archivo de módulo:

  • draw.rs: Mantén tu trait Draw del desafío anterior.
  • text_field.rs: Crea una estructura TextField con un campo público content (un String). Implementa el trait Draw para TextField de modo que al llamar a draw() se imprima el texto en un formato específico: Text: {content}
  • main.rs: Incorpora ambos módulos y crea una instancia de TextField. Llama a su método draw() para renderizar el componente.

Recuerda que tu módulo text_field necesita usar el trait Draw del módulo draw. Puedes acceder a él con crate::draw::Draw ya que ambos módulos forman parte del mismo crate.

Se proporcionará la siguiente entrada:

  • Una cadena que representa el contenido del campo de texto

Tu salida debe seguir este formato exacto:

Text: Hello World

Pruébalo tú mismo

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: Crear una instancia de TextField y llamar a draw() en ella
}

Todas las lecciones de Object Oriented Programming

Practica por tu cuenta: Compilador de Rust online