fn missing_required_error(&self, matcher: &ArgMatcher, incl: Vec<Id>) -> ClapResult<()> {
        debug!("Validator::missing_required_error; incl={:?}", incl);
        debug!(
            "Validator::missing_required_error: reqs={:?}",
            self.required
        );

        let usg = Usage::new(self.p.cmd).required(&self.required);

        let req_args = usg.get_required_usage_from(&incl, Some(matcher), true);

        debug!(
            "Validator::missing_required_error: req_args={:#?}",
            req_args
        );

        let used: Vec<Id> = matcher
            .arg_names()
            .filter(|arg_id| matcher.check_explicit(arg_id, ArgPredicate::IsPresent))
            .filter(|n| {
                // Filter out the args we don't want to specify.
                self.p
                    .cmd
                    .find(n)
                    .map_or(true, |a| !a.is_hide_set() && !self.required.contains(&a.id))
            })
            .cloned()
            .chain(incl)
            .collect();

        Err(Error::missing_required_argument(
            self.p.cmd,
            req_args,
            usg.create_usage_with_title(&used),
        ))
    }
// `incl`: an arg to include in the error even if not used
`incl`: an arg to include in the error even if not used
` incl ` : an arg to include in the error even if not used
fn missing_required_error(&self, matcher: &ArgMatcher, incl: Vec<Id>) -> ClapResult<()> {
        debug!("Validator::missing_required_error; incl={:?}", incl);
        debug!(
            "Validator::missing_required_error: reqs={:?}",
            self.required
        );
        let usg = Usage::new(self.p.cmd).required(&self.required);
        let req_args = usg.get_required_usage_from(&incl, Some(matcher), true);
        debug!(
            "Validator::missing_required_error: req_args={:#?}",
            req_args
        );
        let used: Vec<Id> = matcher
            .arg_names()
            .filter(|arg_id| matcher.check_explicit(arg_id, ArgPredicate::IsPresent))
            .filter(|n| {
                // Filter out the args we don't want to specify.
                self.p
                    .cmd
                    .find(n)
                    .map_or(true, |a| !a.is_hide_set() && !self.required.contains(&a.id))
            })
            .cloned()
            .chain(incl)
            .collect();
        Err(Error::missing_required_argument(
            self.p.cmd,
            req_args,
            usg.create_usage_with_title(&used),
        ))
    }
fn missing_required_error ( & self , matcher : & ArgMatcher , incl : Vec < Id > ) -> ClapResult < ( ) > { debug ! ( " " incl ) ; debug ! ( " " self required ) ; let usg = Usage :: new ( self . p . cmd ) . required ( & self . required ) ; let req_args = usg . get_required_usage_from ( & incl , Some ( matcher ) , true ) ; debug ! ( " " req_args ) ; let used : Vec < Id > = matcher . arg_names ( ) . filter ( | arg_id | matcher . check_explicit ( arg_id , ArgPredicate :: IsPresent ) ) . filter ( | n | { // Filter out the args we don't want to specify. self . p . cmd . find ( n ) . map_or ( true , | a | ! a . is_hide_set ( ) && ! self . required . contains ( & a . id ) ) } ) . cloned ( ) . chain ( incl ) . collect ( ) ; Err ( Error :: missing_required_argument ( self . p . cmd , req_args , usg . create_usage_with_title ( & used ) , ) ) }
`incl`: an arg to include in the error even if not used
` incl ` : an arg to include in the error even if not used
&self
matcher
&ArgMatcher
incl
Vec<Id>
&self
matcher
&ArgMatcher
incl
Vec<Id>