fn next()

in src/compiler/args.rs [615:638]


    fn next(&mut self) -> Option<Self::Item> {
        if let Some(arg) = self.arguments.next() {
            if let Some(seen_double_dashes) = &mut self.seen_double_dashes {
                if !*seen_double_dashes && arg == "--" {
                    *seen_double_dashes = true;
                }
                if *seen_double_dashes {
                    return Some(Ok(Argument::Raw(arg)));
                }
            }
            let s = arg.to_string_lossy();
            let arguments = &mut self.arguments;
            Some(match self.arg_info.search(&s[..]) {
                Some(i) => i.clone().process(&s[..], || arguments.next()),
                None => Ok(if s.starts_with('-') {
                    Argument::UnknownFlag(arg.clone())
                } else {
                    Argument::Raw(arg.clone())
                }),
            })
        } else {
            None
        }
    }