Should make things a lot easier to understand. The UI, as always, needs a lot of work, but the basic information is there.
ZVDBFCW7ENFTFLAPTPHYWGXVSW2W7URZ2IJK67YAMDZVUYEXZIXAC
state
.arg_matches
.as_ref()
.iter()
.map(|arg_matches| {
arg_matches
.get_raw_occurrences(&arg.get_id().as_str())
.unwrap_or_default()
.map(|os_strings| {
el::li(
os_strings
.map(|s| s.to_string_lossy().to_string())
.collect::<Vec<String>>()
.join(" "),
)
})
})
.flatten()
.collect::<Vec<el::Li<_>>>(),
if let Ok(raw_occurences) = arg_matches.try_get_raw_occurrences(arg.get_id().as_str()) {
raw_occurences
.unwrap_or_default()
.map(|os_strings| {
el::li(
os_strings
.map(|s| s.to_string_lossy().to_string())
.collect::<Vec<String>>()
.join(" "),
)
})
.collect::<Vec<el::Li<_>>>()
} else {
arg.get_default_values()
.into_iter()
.map(|os_str| os_str.to_string_lossy().to_string())
.map(el::li)
.collect::<Vec<el::Li<String>>>()
},