Menu
Coddy logo textTech

Componente de Texto

Parte da seção Object Oriented Programming do Journey de Rust da Coddy. Lição 50 de 61.

challenge icon

Desafio

Fácil

Com base na trait Draw que você criou na lição anterior, vamos adicionar nosso primeiro componente de UI real: um TextField. Este componente representará um elemento de exibição de texto em nosso sistema de documentos.

Você expandirá seu projeto com um novo arquivo de módulo:

  • draw.rs: Mantenha sua trait Draw do desafio anterior.
  • text_field.rs: Crie uma struct TextField com um campo público content (uma String). Implemente a trait Draw para TextField de modo que a chamada de draw() imprima o texto em um formato específico: Text: {content}
  • main.rs: Importe ambos os módulos e crie uma instância de TextField. Chame seu método draw() para renderizar o componente.

Lembre-se de que seu módulo text_field precisa usar a trait Draw do módulo draw. Você pode acessá-la com crate::draw::Draw, já que ambos os módulos fazem parte da mesma crate.

A seguinte entrada será fornecida:

  • Uma string representando o conteúdo do campo de texto

Sua saída deve seguir este formato exato:

Text: Hello World

Experimente você mesmo

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: Criar uma instância de TextField e chamar draw() nela
}

Todas as lições de Object Oriented Programming

Pratique por conta própria: Compilador de Rust online