#ifndef prototype1_src_l1_anne_lucy_h
#define prototype1_src_l1_anne_lucy_h

#include "../codegen/util_template_inst.h"
#include "../codegen/list_template_inst.h"

void generate_l1_lucy_headers(){
    SpanU8 l = cstr("l1"), ns = cstr("lucy");
    mkdir_nofail("l1/eve/lucy");
    generate_List_templ_inst_eve_header(l, ns, (list_instantiation_op){
        .T = cstr("LucyImage"), .t_primitive = true}, true);
    generate_eve_span_company_for_primitive(l, ns, cstr("KVPU32ToLucyStoredGlyph"), true, false);
    generate_eve_span_company_for_primitive(l, ns, cstr("KVPU32ToLucyFaceFixedSize"), true, false);

    generate_eve_span_company_for_non_primitive_non_clonable(l, ns, cstr("LucyGlyphCachingRequest"), true, true);
    /* Vector of iterators */
    generate_eve_span_company_for_primitive(l, ns, cstr("RefListNodeLucyImage"), true, false);

    generate_util_templ_inst_eve_header(l, ns, (util_templates_instantiation_options){
        .T = cstr("LucyPositionedStagingGlyph"), .vec = true, .sort = true,
    });
}

#endif