Menu
Coddy logo textTech

Трейт Draw

Часть раздела Object Oriented Programming путешествия по Rust на Coddy — урок 49 из 61.

challenge icon

Задание

Легко

Давайте начнем создавать Систему Документов! В этом проекте вы создадите гибкий фреймворк для рендеринга компонентов пользовательского интерфейса с использованием трейт-объектов. Основа начинается с определения трейта Draw в его собственном файле модуля.

Вы создадите два файла для организации вашего кода:

  • draw.rs: Определите публичный трейт Draw с единственным методом draw, который принимает &self и выводит результат. Этот трейт будет служить контрактом, который должны выполнять все компоненты пользовательского интерфейса.
  • main.rs: Подключите модуль draw и создайте простую структуру Label с публичным полем text (типа String). Реализуйте трейт Draw для Label так, чтобы вызов draw() выводил текст метки.

В вашей функции main создайте экземпляр Label и вызовите его метод draw() для отображения текста.

Будут предоставлены следующие входные данные:

  • Строка, представляющая текст метки

Ваш вывод должен содержать в точности текст метки в одной строке.

Попробуйте сами

mod draw;

use draw::Draw;

// TODO: Определите публичную структуру Label с публичным полем text (String)

// TODO: Реализуйте трейт Draw для Label
// Метод draw должен выводить текст метки

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: Создайте экземпляр Label с введенным текстом
    // TODO: Вызовите метод draw() у метки
}

Все уроки раздела Object Oriented Programming