#[ allow( unused_imports ) ]
use super::*;

#[derive(  Debug, PartialEq  )]
pub struct Struct1< 'a >
{
  pub string_slice_1 : &'a str,
}

impl< 'a > Struct1< 'a >
{
  #[inline]
  pub fn former() -> Struct1Former< 'a >
  {
    Struct1Former
    {
      string_slice_1 : ::core::option::Option::None,
    }
  }
}

pub struct Struct1Former< 'a >
{
  string_slice_1 : ::core::option::Option< &'a str >,
}

impl< 'a > Struct1Former< 'a >
{
  #[inline]
  pub fn form( mut self ) -> Struct1< 'a >
  {
    let string_slice_1 = if self.string_slice_1.is_some()
    {
      self.string_slice_1.take().unwrap()
    }
    else
    {
      let val : &'a str = ::core::default::Default::default();
      val
    };
    Struct1 { string_slice_1 }
  }

  #[inline]
  pub fn string_slice_1< Src >( mut self, src : Src ) -> Self
  where
    Src : ::core::convert::Into< &'a str >,
  {
    debug_assert!( self.string_slice_1.is_none() );
    self.string_slice_1 = ::core::option::Option::Some( src.into() );
    self
  }
}

//

include!( "./string_slice_only_test.rs" );
