) -> impl Iterator<Item = Result<Self, PayloadParseError>> + use<'_> {
// `clap` makes sure we don't have 3 values per option occurence, so we can just
// chunk the aggregated list
debug_assert!(
values.len() % 3 == 0,
"number of values should be divsible by 3"
);
values.chunks(3).map(|chunk| {
Ok(Payload {
id: PayloadId::from_str(&chunk[0])?,