## vim: filetype=makoada

   <%
      scn_var_type = capi.get_name('project_scenario_variable')
      scn_var_ptr = capi.get_name('project_scenario_variable_ptr')
      scn_var_array = capi.get_name('project_scenario_variable_array')
   %>

   type ${scn_var_type} is record
      Name, Value : chars_ptr;
   end record
      with Convention => C_Pass_By_Copy;
   type ${scn_var_ptr} is access ${scn_var_type};
   ${ada_c_doc('libadalang.project_scenario_variable', 3)}

   type ${scn_var_array} is array (Positive range <>) of ${scn_var_type}
      with Convention => C;

   function ${capi.get_name('create_project_unit_provider')}
     (Project_File  : chars_ptr;
      Scenario_Vars : System.Address)
      return ${unit_provider_type}
      with Export        => True,
           Convention    => C,
           External_name => "${capi.get_name('create_project_unit_provider')}";
   ${ada_c_doc('libadalang.create_project_unit_provider', 3)}

   function ${capi.get_name('create_auto_provider')}
     (Input_Files : System.Address;
      Charset     : chars_ptr)
      return ${unit_provider_type}
      with Export        => True,
           Convention    => C,
           External_name => "${capi.get_name('create_auto_provider')}";
   ${ada_c_doc('libadalang.create_auto_provider', 3)}
