1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
macro_rules! r#if { () => { /// Applies the closure only if the condition is `true`. /// /// # Examples /// /// ``` /// use hypotaxis::ChainLink; /// use std::io::{stdout, IsTerminal}; /// /// std::process::Command::new("ls") /// .arg("-t") /// .r#if( stdout().is_terminal(), |command| command /// .arg("-l") /// ) /// .arg("-l") /// .spawn() /// .unwrap() /// ; /// ``` fn r#if<F>( self, condition: bool, change: F ) -> Self where F: FnOnce(Self) -> Self { if condition { change(self) } else { self } } }} pub(crate) use r#if;