1 //! Macros for defining extra assertions that should only be checked in testing 2 //! and/or CI when the `testing_only_extra_assertions` feature is enabled. 3 4 /// Simple macro that forwards to assert! when using 5 /// testing_only_extra_assertions. 6 #[macro_export] 7 macro_rules! extra_assert { 8 ( $cond:expr ) => { 9 if cfg!(feature = "testing_only_extra_assertions") { 10 assert!($cond); 11 } 12 }; 13 ( $cond:expr , $( $arg:tt )+ ) => { 14 if cfg!(feature = "testing_only_extra_assertions") { 15 assert!($cond, $( $arg )* ) 16 } 17 }; 18 } 19 20 /// Simple macro that forwards to assert_eq! when using 21 /// testing_only_extra_assertions. 22 #[macro_export] 23 macro_rules! extra_assert_eq { 24 ( $lhs:expr , $rhs:expr ) => { 25 if cfg!(feature = "testing_only_extra_assertions") { 26 assert_eq!($lhs, $rhs); 27 } 28 }; 29 ( $lhs:expr , $rhs:expr , $( $arg:tt )+ ) => { 30 if cfg!(feature = "testing_only_extra_assertions") { 31 assert!($lhs, $rhs, $( $arg )* ); 32 } 33 }; 34 } 35