Menu
Coddy logo textTech

El Trait Draw

Parte de la sección Object Oriented Programming del Journey de Rust de Coddy — lección 49 de 61.

challenge icon

Desafío

Fácil

¡Comencemos a construir un Sistema de Documentos! En este proyecto, crearás un marco flexible para renderizar componentes de UI utilizando objetos de rasgo (trait objects). La base comienza definiendo un trait Draw en su propio archivo de módulo.

Crearás dos archivos para organizar tu código:

  • draw.rs: Define un trait público Draw con un único método llamado draw que tome &self e imprima la salida. Este trait servirá como el contrato que todos los componentes de UI deben cumplir.
  • main.rs: Incorpora tu módulo draw y crea una estructura simple llamada Label con un campo público text (un String). Implementa el trait Draw para Label de modo que al llamar a draw() se imprima el texto de la etiqueta.

En tu función principal, crea una instancia de Label y llama a su método draw() para mostrar el texto.

Se proporcionará la siguiente entrada:

  • Una cadena que representa el texto de la etiqueta

Tu salida debe ser exactamente el texto de la etiqueta en una sola línea.

Pruébalo tú mismo

mod draw;

use draw::Draw;

// TODO: Definir una estructura pública llamada Label con un campo de texto público (String)

// TODO: Implementar el rasgo Draw para Label
// El método draw debe imprimir el texto de la etiqueta

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

    // TODO: Crear una instancia de Label con el texto de entrada
    // TODO: Llamar al método draw() en la etiqueta
}

Todas las lecciones de Object Oriented Programming