Учитывая эту структуру:
pub struct A {
pub C: B,
}
Я ищу создать контейнер Rust с элементами A
и доступ к A.C
в этом универсальном контейнере Rust. Вот такой контейнер:
pub struct MyArray<A, C> {
data: Vec<A>,
size: usize,
}
impl<A, C> MyArray {
// Access the value in the ith element of data
pub fn get_value(self, i: u64) -> u64 {
self.data[i].C
}
}
Учитывая следующую структуру:
pub struct House {
pub num_rooms: u64,
}
Я хочу создать общие типы, подобные этому:
let h: MyArray<House, num_rooms> = MyArray(6);
let d: MyArray<Cat, num_lives> = MyArray(10);
Тогда я хочу иметь возможность вызвать h.func(5)
, чтобы получить значение указанного поля в 6-м элементе контейнера Rust.
Я не уверен, возможно ли это вообще. Если это так, возможно, нужны макросы / генерики.