rust – Attempt to convert struct with a hashmap member

Consider a structure:

struct RawData {
pub a: HashMap,
pub b: HashMap,
}

which should be converted into a structure with more concrete members:

struct EncodedData {
pub a: HashMap,
pub b: HashMap,
}

and there is a function that tries to analyze Chain in MyStruct returning Result

Now I am not satisfied with the work solution I have found and think that there must be a better solution:

fn convert (raw_data: RawData) -> Result {
let a = Result <HashMap, String> == raw_data.a.iter ()
.map (| (k, v) | {
Let v = parse (v)?
Ok ((k.clone (), v))
})
.collection();
leave a = a?
let b = Result <HashMap, String> == raw_data.b.iter ()
.map (| (k, v) | {
Let v = parse (v)?
Ok ((k.clone (), v))
})
.collection();
Let b = b?
EncodedData {a, b}
}

Here I do not like:
1. the need to clone because into_iter () is not allowed.
1. the second leave a = a? otherwise, the compiler could not deduce the type.

Cargo Clippy seems to be happy with this code. Are you?