former 2.43.0

A flexible implementation of the Builder pattern supporting nested builders and collection-specific subformers. Simplify the construction of complex objects.
Documentation
#![allow(clippy::used_underscore_binding, clippy::all, warnings, missing_docs)]
#[ allow( unused_imports ) ]
use super::*;
#[ allow( unused_imports ) ]
use test_tools::a_id;

#[ derive( Debug, PartialEq, the_module::Former ) ]
pub struct Struct0 {
  pub int_1: i32,
}

#[ derive( Debug, PartialEq, the_module::Former ) ]
#[ perform( fn perform1< 'a >() -> Option< &'a str > ) ]
pub struct Struct1 {
  pub int_1: i32,
}

// == begin of generated

// == end of generated

impl Struct1 {
  fn perform1<'a>(&self) -> Option<&'a str> {
    Some("abc")
  }
}

//

tests_impls! {

  fn basecase()
  {

    let got = Struct0::former().form();
    let expected = Struct0 { int_1 : 0 };
    a_id!( got, expected );

    let got = Struct0::former().perform();
    let expected = Struct0 { int_1 : 0 };
    a_id!( got, expected );

  }

  fn basic()
  {

    let got = Struct1::former().form();
    let expected = Struct1 { int_1 : 0 };
    a_id!( got, expected );

    let got = Struct1::former().perform();
    let expected = Some( "abc" );
    a_id!( got, expected );

  }

}

//

tests_index! {
  basecase,
  basic,
}