@@ -365,32 +365,7 @@ pub fn run_in_tmpdir<F: FnOnce()>(callback: F) {
365365 fs:: remove_dir_all ( tmpdir) . unwrap ( ) ;
366366}
367367
368- /// Implement common helpers for command wrappers. This assumes that the command wrapper is a struct
369- /// containing a `cmd: Command` field. The provided helpers are:
370- ///
371- /// 1. Generic argument acceptors: `arg` and `args` (delegated to [`Command`]). These are intended
372- /// to be *fallback* argument acceptors, when specific helpers don't make sense. Prefer to add
373- /// new specific helper methods over relying on these generic argument providers.
374- /// 2. Environment manipulation methods: `env`, `env_remove` and `env_clear`: these delegate to
375- /// methods of the same name on [`Command`].
376- /// 3. Output and execution: `run` and `run_fail` are provided. These are
377- /// higher-level convenience methods which wait for the command to finish running and assert
378- /// that the command successfully ran or failed as expected. They return
379- /// [`CompletedProcess`], which can be used to assert the stdout/stderr/exit code of the executed
380- /// process.
381- ///
382- /// Example usage:
383- ///
384- /// ```ignore (illustrative)
385- /// struct CommandWrapper { cmd: Command } // <- required `cmd` field
386- ///
387- /// crate::impl_common_helpers!(CommandWrapper);
388- ///
389- /// impl CommandWrapper {
390- /// // ... additional specific helper methods
391- /// }
392- /// ```
393- macro_rules! impl_common_helpers {
368+ macro_rules! impl_common_helpers_without_run {
394369 ( $wrapper: ident) => {
395370 impl $wrapper {
396371 /// Specify an environment variable.
@@ -434,13 +409,50 @@ macro_rules! impl_common_helpers {
434409 self
435410 }
436411
437- /// Inspect what the underlying [`Command`] is up to the
438- /// current construction.
439412 pub fn inspect<I >( & mut self , inspector: I ) -> & mut Self
440413 where
441414 I : FnOnce ( & :: std:: process:: Command ) ,
442415 {
443- self . cmd. inspect( inspector) ;
416+ inspector( & self . cmd) ;
417+ self
418+ }
419+ }
420+ } ;
421+ }
422+
423+ /// Implement common helpers for command wrappers. This assumes that the command wrapper is a struct
424+ /// containing a `cmd: Command` field. The provided helpers are:
425+ ///
426+ /// 1. Generic argument acceptors: `arg` and `args` (delegated to [`Command`]). These are intended
427+ /// to be *fallback* argument acceptors, when specific helpers don't make sense. Prefer to add
428+ /// new specific helper methods over relying on these generic argument providers.
429+ /// 2. Environment manipulation methods: `env`, `env_remove` and `env_clear`: these delegate to
430+ /// methods of the same name on [`Command`].
431+ /// 3. Output and execution: `run` and `run_fail` are provided. These are
432+ /// higher-level convenience methods which wait for the command to finish running and assert
433+ /// that the command successfully ran or failed as expected. They return
434+ /// [`CompletedProcess`], which can be used to assert the stdout/stderr/exit code of the executed
435+ /// process.
436+ ///
437+ /// Example usage:
438+ ///
439+ /// ```ignore (illustrative)
440+ /// struct CommandWrapper { cmd: Command } // <- required `cmd` field
441+ ///
442+ /// crate::impl_common_helpers!(CommandWrapper);
443+ ///
444+ /// impl CommandWrapper {
445+ /// // ... additional specific helper methods
446+ /// }
447+ /// ```
448+ macro_rules! impl_common_helpers {
449+ ( $wrapper: ident) => {
450+ crate :: impl_common_helpers_without_run!( $wrapper) ;
451+
452+ impl $wrapper {
453+ /// Set the path where the command will be run.
454+ pub fn current_dir<P : AsRef <Path >>( & mut self , path: P ) -> & mut Self {
455+ self . cmd. current_dir( path) ;
444456 self
445457 }
446458
@@ -455,15 +467,10 @@ macro_rules! impl_common_helpers {
455467 pub fn run_fail( & mut self ) -> crate :: command:: CompletedProcess {
456468 self . cmd. run_fail( )
457469 }
458-
459- /// Set the path where the command will be run.
460- pub fn current_dir<P : AsRef <:: std:: path:: Path >>( & mut self , path: P ) -> & mut Self {
461- self . cmd. current_dir( path) ;
462- self
463- }
464470 }
465471 } ;
466472}
467473
468474use crate :: command:: { Command , CompletedProcess } ;
469475pub ( crate ) use impl_common_helpers;
476+ pub ( crate ) use impl_common_helpers_without_run;
0 commit comments