Практика на ассоциированные типы в Rust
Дана структура:
struct Shelf {
items: Vec<String>,
}
Объявите трейт с связанным типом и методом
первого элемента, выполните его для
Shelf со строками и выведите первую
метку.
Дан следующий код:
struct Stack {
nums: Vec<i32>,
}
Сделайте трейт как у контейнера с первым
числом, подставьте i32 и выведите
первое значение из nums.
Даны типы:
trait Limit {
const MAX: i32;
}
struct Door {
id: i32,
}
struct Window {
id: i32,
}
Задайте MAX равным 3 для
Door и 7 для Window,
выведите оба лимита одной строкой.
Дан срез:
let vals = [2, 4, 6];
Обойдите срез готовым обходом, выведите элементы и запишите тип переменной цикла.
Дан следующий код:
struct Crate {
weight: i32,
}
Добавьте трейт с MAX: i32 и методом
fits, который сравнивает вес с
лимитом. Подставьте 50, проверьте
weight и выведите да или нет.
Дан следующий код:
struct Pair {
left: i32,
right: i32,
}
Объявите трейт со связанным типом, подставьте
i32 в блоке выполнения, верните ссылку
на left и выведите левое число.