Menu
Coddy logo textTech

A Trait Draw

Parte da seção Object Oriented Programming do Journey de Rust da Coddy — lição 49 de 61.

challenge icon

Desafio

Fácil

Vamos começar a construir um Sistema de Documentos! Neste projeto, você criará um framework flexível para renderizar componentes de UI usando trait objects. A base começa com a definição de uma trait Draw em seu próprio arquivo de módulo.

Você criará dois arquivos para organizar seu código:

  • draw.rs: Defina uma trait pública Draw com um único método chamado draw que recebe &self e imprime a saída. Esta trait servirá como o contrato que todos os componentes de UI devem cumprir.
  • main.rs: Importe seu módulo draw e crie uma struct simples chamada Label com um campo público text (uma String). Implemente a trait Draw para Label de modo que a chamada de draw() imprima o texto da label.

Em sua função main, crie uma instância de Label e chame seu método draw() para exibir o texto.

A seguinte entrada será fornecida:

  • Uma string representando o texto da label

Sua saída deve ser exatamente o texto da label em uma única linha.

Experimente você mesmo

mod draw;

use draw::Draw;

// TODO: Defina uma struct pública chamada Label com um campo text público (String)

// TODO: Implemente a trait Draw para Label
// O método draw deve imprimir o text da label

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: Crie uma instância de Label com o text de entrada
    // TODO: Chame o método draw() na label
}

Todas as lições de Object Oriented Programming