Poniższe kompiluje:Jak zaimplementować strukturę, która pobiera ogólny wektor z adnotacjami dożywotnimi?
pub struct Reader<'a> {
position: uint,
data: &'a [u8]
}
Jest to czytnik, który zajmuje wektor (faktycznie plasterka) typu u8
jako odniesienie, i określić żywotność.
Jednak nie jest to dokładnie to, czego chcę. Chcę być w stanie uczynić strukturę struct, a jeszcze bardziej precyzyjnie, chcę zaznaczyć, że typ powinien być fragmentem czegokolwiek. Próbowałem to na początek:
pub struct Reader<'a, T> {
position: uint,
data: &'a T
}
To nie oznacza T
się kawałek, ale to już niepowodzeniem z komunikatem:
typ parametru
T
nie mogą żyć wystarczająco długo; rozważyć dodanie wyraźny całe życie związanyT:'a
...
Ok więc ja po prostu musiał określić żywotność.
Ale teraz mój problem polega na tym, że w jaki sposób sprawić, by był on generyczny dla plasterka typu i miałby on trwałość? Próbowałem takich rzeczy jak Reader<'a, T: 'a Vec>
i T: 'a [T]
, ale nie mam pojęcia, jak mam to oznaczać, a oficjalny przewodnik nie wydaje się zajmować takim przypadkiem.
Po prostu chcę zbudować czytnik, który pobiera dowolny rodzaj plastra, pożyczając go, i zapewnia metody działania na danych (w trybie tylko do odczytu).
Bardzo pomocne! Dzięki za przesłanie rozwiązania! – Gedweb