Так я возвращаюсь итератор следующим образом:Каким должен быть тип возвращаемого ИТЭР() клонировали() фильтр() карта()
pub fn get_iter_names(&self) -> ??? {
self.nodes.iter().cloned()
.filter(|x| x.is_some())
.map(|x| x.unwrap().name)
}
где self.nodes
является Vec<Option<Node>>
и Node
имеет поданную заявку name
. Вопрос заключается в том, каким должен быть тип возврата. Мой компилятор говорит core::iter::Map<core::iter::Filter<core::iter::Cloned<core::slice::Iter<'_, core::option::Option<core::node::ComputeNode>>>, [[email protected]/core/graph.rs:931:12: 931:27]>, [[email protected]/core/graph.rs:932:9: 932:28]>
, но проблема в том, что я не знаю, как указать clousure как тип?
Каков правильный способ сделать это в любом случае?