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

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

        let req_args = if let Some(x) = incl {
            usg.get_required_usage_from(&[x.clone()], Some(matcher), true)
        } else {
            usg.get_required_usage_from(&[], None, true)
        };

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

        let used: Vec<Id> = matcher
            .arg_names()
            .filter(|&n| {
                if let Some(a) = self.p.app.find(n) {
                    !(self.p.required.contains(&a.id) || a.is_set(ArgSettings::Hidden))
                } else {
                    true
                }
            })
            .cloned()
            .chain(incl.cloned())
            .collect();

        Err(Error::missing_required_argument(
            req_args,
            &*usg.create_usage_with_title(&*used),
            self.p.app.color(),
        )?)
    }
// `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: Option<&Id>) -> ClapResult<()> {
        debug!("Validator::missing_required_error; incl={:?}", incl);
        debug!(
            "Validator::missing_required_error: reqs={:?}",
            self.p.required
        );
        let usg = Usage::new(self.p);
        let req_args = if let Some(x) = incl {
            usg.get_required_usage_from(&[x.clone()], Some(matcher), true)
        } else {
            usg.get_required_usage_from(&[], None, true)
        };
        debug!(
            "Validator::missing_required_error: req_args={:#?}",
            req_args
        );
        let used: Vec<Id> = matcher
            .arg_names()
            .filter(|&n| {
                if let Some(a) = self.p.app.find(n) {
                    !(self.p.required.contains(&a.id) || a.is_set(ArgSettings::Hidden))
                } else {
                    true
                }
            })
            .cloned()
            .chain(incl.cloned())
            .collect();
        Err(Error::missing_required_argument(
            req_args,
            &*usg.create_usage_with_title(&*used),
            self.p.app.color(),
        )?)
    }
fn missing_required_error ( & self , matcher : & ArgMatcher , incl : Option < & Id > ) -> ClapResult < ( ) > { debug ! ( " " incl ) ; debug ! ( " " self p required ) ; let usg = Usage :: new ( self . p ) ; let req_args = if let Some ( x ) = incl { usg . get_required_usage_from ( & [ x . clone ( ) ] , Some ( matcher ) , true ) } else { usg . get_required_usage_from ( & [ ] , None , true ) } ; debug ! ( " " req_args ) ; let used : Vec < Id > = matcher . arg_names ( ) . filter ( | & n | { if let Some ( a ) = self . p . app . find ( n ) { ! ( self . p . required . contains ( & a . id ) || a . is_set ( ArgSettings :: Hidden ) ) } else { true } } ) . cloned ( ) . chain ( incl . cloned ( ) ) . collect ( ) ; Err ( Error :: missing_required_argument ( req_args , & * usg . create_usage_with_title ( & * used ) , self . p . app . color ( ) , ) ? ) }
`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
Option<&Id>
&self
matcher
&ArgMatcher
incl
Option<&Id>