Skip to content

Commit

Permalink
former : experimenting
Browse files Browse the repository at this point in the history
  • Loading branch information
Wandalen committed Apr 13, 2024
1 parent bdc614c commit 7511be8
Showing 1 changed file with 53 additions and 44 deletions.
97 changes: 53 additions & 44 deletions module/core/former/tests/inc/former_tests/subformer_shortcut.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,50 +82,59 @@ where
// }

// xxx : uncomment
// #[ inline( always ) ]
// pub fn descriptor3< Former2, Definition2, End >( self ) ->
// Former2
// where
// // Definition2 : former::FormerDefinition< End = former::FormingEndClosure< Definition2::Types > >,
// Definition2 : former::FormerDefinition,
// Definition2::End : former::FormingEnd< Definition2::Types >,
//
// // Definition2 : former::FormerDefinition< Types = Former2::Types, End = End >,
// // Former2 : former::FormerBegin< Definition2 >,
// // End : former::FormingEnd< Former2::Types >,
//
// Definition2::Types : former::FormerDefinitionTypes
// <
// Storage = TemplateParameterDescriptorFormerStorage,
// Formed = TemplateParameterDescriptor,
// Context = Self,
// >,
// Former2 : former::FormerBegin
// <
// Definition2,
// // TemplateParameterDescriptorFormerStorage,
// // TemplateParameterDescriptor,
// // Self,
// // End = former::FormingEndClosure< TemplateParameterDescriptor, Self >,
// >,
// // FieldContainer : ContainerAdd,
// {
//
// let on_end = | descriptor : TemplateParameterDescriptor, super_former : core::option::Option< Self > | -> Self
// {
// let mut super_former = super_former.unwrap();
// if super_former.storage.descriptors.is_none()
// {
// super_former.storage.descriptors = Some( Default::default() );
// }
// if let Some( ref mut descriptors ) = super_former.storage.descriptors
// {
// former::ContainerAdd::add( descriptors, descriptor );
// }
// super_former
// };
// Former2::_begin( None, Some( self ), former::FormingEndClosure::new( on_end ) )
// }
#[ inline( always ) ]
pub fn descriptor3< Former2, Definition2, Types2, End >( self ) ->
Former2
where
Types2 : former::FormerDefinitionTypes
<
Storage = TemplateParameterDescriptor,
Formed = Self,
Context = Self,
>,
// Definition2 : former::FormerDefinition< End = former::FormingEndClosure< Definition2::Types > >,
Definition2 : former::FormerDefinition< End = former::FormingEndClosure< Types2 >, Types = Types2 >,
// Definition2 : former::FormerDefinition< End = End >,
Definition2 : former::FormerDefinition,
Definition2::End : former::FormingEnd< Definition2::Types >,

// Definition2 : former::FormerDefinition< Types = Former2::Types, End = End >,
// Former2 : former::FormerBegin< Definition2 >,
// End : former::FormingEnd< Former2::Types >,

// Definition2::Types : former::FormerDefinitionTypes
// <
// Storage = TemplateParameterDescriptorFormerStorage,
// Formed = TemplateParameterDescriptor,
// Context = Self,
// >,

Former2 : former::FormerBegin
<
Definition2,
// TemplateParameterDescriptorFormerStorage,
// TemplateParameterDescriptor,
// Self,
// End = former::FormingEndClosure< TemplateParameterDescriptor, Self >,
>,
// FieldContainer : ContainerAdd,
{

let on_end = | descriptor : TemplateParameterDescriptor, super_former : core::option::Option< Self > | -> Self
{
let mut super_former = super_former.unwrap();
if super_former.storage.descriptors.is_none()
{
super_former.storage.descriptors = Some( Default::default() );
}
if let Some( ref mut descriptors ) = super_former.storage.descriptors
{
former::ContainerAdd::add( descriptors, descriptor );
}
super_former
};
Former2::_begin( None, Some( self ), former::FormingEndClosure::new( on_end ) )
}

// xxx2 : move to a trait and make easier to use subformer, trait with generic interface of a container should help

Expand Down

0 comments on commit 7511be8

Please sign in to comment.