Menu
Coddy logo textTech

Componente de texto

Parte de la sección Programación Orientada a Objetos del Journey de Rust de Coddy. Lección 50 de 61.

challenge icon

Desafío

Fácil

Basándonos en el rasgo Draw que creaste en la lección anterior, añadamos nuestro primer componente de UI 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: Conserva tu rasgo Draw del desafío anterior.
  • text_field.rs: Crea una estructura TextField con un campo público content (un String). Implementa el rasgo Draw para TextField de modo que llamar a draw() 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 debe usar el rasgo 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 Programación Orientada a Objetos

Practica por tu cuenta: Compilador de Rust online