Edit
As it seemms from the suggested solution, What I'm trying to achieve seems impossible/Not the correct way, therefore - I'll explain the end goal here:
I am parsing the values for Foo from a YAML file using serde, and I would like to let the user get one of those stored values from the yaml at a time, this is why I wanted to store an iterator in my struct
I have two struct similar to the following:
struct Bar { name: String, id: u32 } struct Foo { my_map: HashMap<String, Bar> } In my Foo struct, I wish to store an iterator to my HashMap, so a user can borrow values from my map on demand. Theoretically, the full Foo class would look something like:
struct Foo { my_map: HashMap<String, Bar>, my_map_iter: HashMap<String, Bar>::iterator } impl Foo { fn get_pair(&self) -> Option<(String, Bar)> { // impl... } } But I can't seem to pull it off and create such a variable, no matter what I try (Various compilation errors which seems like I'm just trying to do that wrong).
I would be glad if someone can point me to the correct way to achieve that and if there is a better way to achieve what I'm trying to do - I would like to know that.
Thank you!
Fooclass not provide an iterator to use at the user's leisure?