Menu
Coddy logo textTech

El Trait Draw

Parte de la sección Programación Orientada a Objetos 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 mediante objetos de rasgo. La base comienza definiendo un rasgo Draw en su propio archivo de módulo.

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

  • draw.rs: Define un rasgo público Draw con un único método llamado draw que recibe &self e imprime la salida. Este rasgo servirá como el contrato que todos los componentes de UI deben cumplir.
  • main.rs: Incluye tu módulo draw y crea una estructura sencilla llamada Label con un campo público text (un String). Implementa el rasgo Draw para Label de modo que llamar a draw() 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 Programación Orientada a Objetos

Practica por tu cuenta: Compilador de Rust online