mod_interface_runtime 0.1.1

Protocol of modularity unifying interface of a module and introducing layers.
Documentation
/// Internal namespace.
pub( crate ) mod private
{

  // xxx : move here test tools

//   ///
//   /// Mechanism to define test suite.
//   /// This macro encourages refactoring the code of the test in the most readable way, gathering a list of all test routines at the end of the test file.
//   ///
//   /// Name of test routine should have postfix `*_test`. In the index of test routine the postfix should be ommited.
//   ///
//   /// ### Sample
//   /// use wtest_basic::*;
//   ///
//   /// //
//   ///
//   /// fn pass1_test()
//   /// {
//   ///   assert_eq!( true, true );
//   /// }
//   ///
//   /// //
//   ///
//   /// fn pass2_test()
//   /// {
//   ///   assert_eq!( 1, 1 );
//   /// }
//   ///
//   /// //
//   ///
//   /// test_suite!
//   /// {
//   ///   pass1,
//   ///   pass2,
//   /// }
//   ///
//
//   #[ macro_export ]
//   macro_rules! test_suite
//   {
//
//     () => { };
//
//     (
//       $( #[ $Meta : meta ] )*
//       $Name : ident ,
//       $( $Rest : tt )*
//     )
//     =>
//     {
//       $( #[ $Meta ] )*
//       #[test]
//       fn $Name()
//       {
//         $crate::paste::paste!([< $Name _test >])()
//       }
//       $crate::test_suite!( $( $Rest )* );
//     };
//
//   }

  // /// Pass only if callback fails either returning error or panicing.
  //
  // pub fn should_throw< R, F : FnOnce() -> anyhow::Result< R > >( f : F ) -> anyhow::Result< R >
  // {
  //   f()
  // }

  //

  // #[panic_handler]
  // fn panic( info : &core::panic::PanicInfo ) -> !
  // {
  //   println!( "{:?}", info );
  //   loop {}
  // }

  // pub use test_suite;
  // pub use test_suite_internals;
  // pub use index;
}

/// Exposed namespace of the module.
pub mod exposed
{
  // use super::private as i;
  pub use super::prelude::*;
  // pub use super::private::test_suite;
}

pub use exposed::*;

/// Prelude to use essentials: `use my_module::prelude::*`.
pub mod prelude
{
  // use super::private as i;
  // pub use super::private::test_suite;
  pub use core::fmt; // zzz : add to prelude of wtools under feature fair_context
}