циклов? где Order это отдельная структура с String/u32.
Пробовал что-то типо
map.into_values().flatten().collect::<HashMap<u32, Vec<Order>>>()
.into_values().flatten().collect::<Vec<Order>>()
но ловлю move occurs
пробовал через unzip - ошибки ловил, связанные с fromIter<Vec<Order>>
если же просто values(), то ошибки с двойный референсом, с которым не хочет ничего collect
map.into_values().flat_map(HashMap::into_values)
ага, спасибо, и чтобы получить вектор из Order мне нужно написать fromIter? или как
Покажи определение Order и скажи, что именно ты хочешь оттуда достать
pub struct Order { client: String, operation: Operation, // просто енамка ticker: String, price: u32, amount: u32, } мне бы просто все ордера достать из хэш мапы (там маппинг по тикеру и цене идет, простая матчинговая система)
map .into_values() .flat_map(HashMap::into_values) .collect::<Vec<_>>() И, если что, iter.collect::<Collection>() просто вызывает <Collection as FromIterator>::from_iter(iter)
the trait `FromIterator<Vec<orders::Order>>` is not implemented for `Vec<orders::Order>` я вот такую ловлю, также пробовал
А, ну да, тут же итератор из векторов получается. map .into_values() .flat_map(HashMap::into_values) .flatten() .collect::<Vec<_>>()
и вот теперь ловлю move occurs because `map` has type `HashMap<String, HashMap<u32, Vec<orders::Order>>>`, which does not implement the `Copy` trait
А вот тут уже нельзя подсказать, не увидев твой код. Можно лишь сказать, что ты достаёшь данные из мапы, перемещая данные из неё, но при это используешь её потом снова
хотел сделать getter для values из мапы, которая в структуре хранится, pub fn get_open_order1(&self) -> Vec<Order> { self.open_orders.into_values() .flat_map(HashMap::into_values) .flatten() .collect::<Vec<Order>>() } я думал идея хорошая...
Обсуждают сегодня