fn next()

in lambda-http/src/strmap.rs [87:113]


    fn next(&mut self) -> Option<(&'a str, &'a str)> {
        if self.current.is_none() {
            self.current = self.keys.next().map(|k| (k, self.data.get_all(k).unwrap_or_default()));
        };

        let mut reset = false;
        let ret = if let Some((key, values)) = &self.current {
            let value = values[self.next_idx];

            if self.next_idx + 1 < values.len() {
                self.next_idx += 1;
            } else {
                reset = true;
            }

            Some((key.as_str(), value))
        } else {
            None
        };

        if reset {
            self.current = None;
            self.next_idx = 0;
        }

        ret
    }