Chcę zdefiniować cechę Container
tak, że każdy implementator tej cechy musi również implementować IntoIterator
, z zastrzeżeniem, że iteracja ZAWSZE pożycza tylko instancję. Jeśli dobrze rozumiem, mogę realizować IntoIterator
stosując wzór tak:Ograniczenie rodzica do odniesienia
impl<'a> IntoIterator for &'a ContainerImpl
jednak, w jaki sposób mogę określić, że to musi być realizowane, jeśli typ implementuje Container
, np:
trait Container: &IntoIter ???
To ma sens, ale dodaje boilerplate jest dość niefortunne. Czy możesz wskazać mi dokument opisujący użycie <> w klauzuli where? Nie mogłem go nigdzie znaleźć .. – MrMobster
@MrMobster Nazywane są one wyższymi granicami cech. Nie ma zbyt wiele dokumentacji, ale znalazłem to: https://doc.rust-lang.org/nomicon/hrtb.html – delnan