std_tools 0.1.4

Collection of general purpose tools for solving problems. Fundamentally extend the language without spoiling, so may be used solely or in conjunction with another module of such kind.
Documentation
// use test_tools::*;
use super::*;
use TheModule::prelude::impls3;

//

tests_impls!
{
  #[ test ]
  fn impls_basic()
  {

    // test.case( "impls3 basic" );
    {

      impls3!
      {
        fn f1()
        {
          println!( "f1" );
        }
        pub fn f2()
        {
          println!( "f2" );
        }
      };

      // trace_macros!( true );
      f1!();
      f2!();
      // trace_macros!( false );

      f1();
      f2();

    }

    // test.case( "impls3 as" );
    {

      impls3!
      {
        fn f1()
        {
          println!( "f1" );
        }
        pub fn f2()
        {
          println!( "f2" );
        }
      };

      // trace_macros!( true );
      f1!( as f1b );
      f2!( as f2b );
      // trace_macros!( false );

      f1b();
      f2b();

    }

    // test.case( "impls3 as index" );
    {

      impls3!
      {
        fn f1()
        {
          println!( "f1" );
        }
        pub fn f2()
        {
          println!( "f2" );
        }
      };

      // trace_macros!( true );
      index!
      {
        f1,
        f2 as f2b,
      }
      // trace_macros!( false );

      f1();
      f2b();

    }

  //   // test.case( "macro" );
  //   {
  //
  //     impls3!
  //     {
  //       fn f1()
  //       {
  //         macro_rules! macro1
  //         {
  //           ( $( $Arg : tt )* ) => { };
  //         }
  //         macro1!();
  //       }
  //     }
  //
  //     // trace_macros!( true );
  //     f1!();
  //     // trace_macros!( false );
  //
  //   }

  // macro_rules! closure
  // {
  //   () =>
  //   {
  //     macro_rules! macro1
  //     {
  //       ( $( $Arg : tt )* ) => { };
  //     }
  //   }
  // }
  //
  // closure!();
  }
}

//

tests_index!
{
  impls_basic,
}