#ifndef prototype1_src_l1_5_anne_margaret_h
#define prototype1_src_l1_5_anne_margaret_h

#include "../codegen/buff_rbtree_set_map_template_inst.h"
#include "../codegen/rbtree_set_map_template_inst.h"

void generate_l1_5_template_instantiations_for_margaret(){
    SpanU8 l = cstr("l1_5"), ns = cstr("margaret");
    mkdir_nofail("l1_5/eve");
    mkdir_nofail("l1_5/eve/margaret");

    /* For l2/margaret/{ vulkan_img_claire.h , vulkan_buffer_claire.h } */
    generate_buf_rbtree_Set_templ_inst_eve_header(l, ns, (set_instantiation_op){
            .T = cstr("MargaretIAFreeSegment"), .t_primitive = true,
            /* comparison takes additional U8 parameter */
            .alternative_less = cstr("MargaretIAFreeSegment_less_resp_align"),
            .alternative_comp_set_name_embed = cstr("LenRespAlign"),
            .guest_data_T = cstr("U8"),
        });
    generate_buf_rbtree_Set_templ_inst_eve_header(l, ns, (set_instantiation_op){
            .T = cstr("MargaretBAFreeSegment"), .t_primitive = true,
            /* comparison takes additional U8 parameter */
            .alternative_less = cstr("MargaretBAFreeSegment_less_len"),
            .alternative_comp_set_name_embed = cstr("Len"),
        });
}

#endif