Доступ к полю в общей структуре

NutellaFan спросил: 07 октября 2018 в 12:16 в: generics

Учитывая эту структуру:

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.

Я не уверен, возможно ли это вообще. Если это так, возможно, нужны макросы / генерики.

0 ответов