use minijinja::Environment;
static TEMPLATES: &[(&str, &str)] = &[
(
"last_error_helper.jinja",
include_str!("templates/last_error_helper.jinja"),
),
(
"unmarshal_bytes_helper.jinja",
include_str!("templates/unmarshal_bytes_helper.jinja"),
),
("ptr_helper.jinja", include_str!("templates/ptr_helper.jinja")),
("opaque_type.jinja", include_str!("templates/opaque_type.jinja")),
("go_file_header.jinja", include_str!("templates/go_file_header.jinja")),
(
"plugin_bridge_exports.jinja",
include_str!("templates/plugin_bridge_exports.jinja"),
),
("unit_enum.jinja", include_str!("templates/unit_enum.jinja")),
(
"visitor_preamble.jinja",
include_str!("templates/visitor_preamble.jinja"),
),
(
"visitor_node_context_and_result.jinja",
include_str!("templates/visitor_node_context_and_result.jinja"),
),
(
"package_declaration.jinja",
include_str!("templates/package_declaration.jinja"),
),
(
"package_doc_and_declaration.jinja",
include_str!("templates/package_doc_and_declaration.jinja"),
),
(
"service_file_preamble.jinja",
include_str!("templates/service_file_preamble.jinja"),
),
(
"service_handler_registry.jinja",
include_str!("templates/service_handler_registry.jinja"),
),
("service_struct.jinja", include_str!("templates/service_struct.jinja")),
(
"service_constructor.jinja",
include_str!("templates/service_constructor.jinja"),
),
(
"service_close_method.jinja",
include_str!("templates/service_close_method.jinja"),
),
(
"service_c_imports_comment.jinja",
include_str!("templates/service_c_imports_comment.jinja"),
),
(
"service_start_background.jinja",
include_str!("templates/service_start_background.jinja"),
),
(
"cgo_preamble_binding.jinja",
include_str!("templates/cgo_preamble_binding.jinja"),
),
(
"cgo_preamble_visitor.jinja",
include_str!("templates/cgo_preamble_visitor.jinja"),
),
("imports_basic.jinja", include_str!("templates/imports_basic.jinja")),
(
"string_type_decl.jinja",
include_str!("templates/string_type_decl.jinja"),
),
(
"const_block_header.jinja",
include_str!("templates/const_block_header.jinja"),
),
(
"const_block_footer.jinja",
include_str!("templates/const_block_footer.jinja"),
),
("const_variant.jinja", include_str!("templates/const_variant.jinja")),
(
"struct_type_decl.jinja",
include_str!("templates/struct_type_decl.jinja"),
),
("struct_type_end.jinja", include_str!("templates/struct_type_end.jinja")),
("struct_field.jinja", include_str!("templates/struct_field.jinja")),
("blank_line.jinja", include_str!("templates/blank_line.jinja")),
(
"function_signature.jinja",
include_str!("templates/function_signature.jinja"),
),
(
"c_string_arg_setup.jinja",
include_str!("templates/c_string_arg_setup.jinja"),
),
(
"visitor_helper_guard.jinja",
include_str!("templates/visitor_helper_guard.jinja"),
),
(
"options_json_to_c.jinja",
include_str!("templates/options_json_to_c.jinja"),
),
("ffi_ptr_call.jinja", include_str!("templates/ffi_ptr_call.jinja")),
(
"result_json_unmarshal.jinja",
include_str!("templates/result_json_unmarshal.jinja"),
),
("adapter_wrapper.jinja", include_str!("templates/adapter_wrapper.jinja")),
("return_zero_err.jinja", include_str!("templates/return_zero_err.jinja")),
(
"function_body_end.jinja",
include_str!("templates/function_body_end.jinja"),
),
("export_marker.jinja", include_str!("templates/export_marker.jinja")),
(
"visit_result_helper.jinja",
include_str!("templates/visit_result_helper.jinja"),
),
(
"visitor_interface_header.jinja",
include_str!("templates/visitor_interface_header.jinja"),
),
(
"visitor_interface_footer.jinja",
include_str!("templates/visitor_interface_footer.jinja"),
),
(
"base_visitor_header.jinja",
include_str!("templates/base_visitor_header.jinja"),
),
(
"visitor_registry_block.jinja",
include_str!("templates/visitor_registry_block.jinja"),
),
(
"decode_node_context.jinja",
include_str!("templates/decode_node_context.jinja"),
),
(
"encode_visit_result.jinja",
include_str!("templates/encode_visit_result.jinja"),
),
("opt_go_string.jinja", include_str!("templates/opt_go_string.jinja")),
(
"decode_cells_json.jinja",
include_str!("templates/decode_cells_json.jinja"),
),
(
"trampoline_lookup.jinja",
include_str!("templates/trampoline_lookup.jinja"),
),
(
"trampoline_is_header.jinja",
include_str!("templates/trampoline_is_header.jinja"),
),
(
"convert_with_visitor_helper.jinja",
include_str!("templates/convert_with_visitor_helper.jinja"),
),
(
"convert_with_visitor_wrapper.jinja",
include_str!("templates/convert_with_visitor_wrapper.jinja"),
),
(
"enum_type_header.jinja",
include_str!("templates/enum_type_header.jinja"),
),
(
"enum_type_footer.jinja",
include_str!("templates/enum_type_footer.jinja"),
),
(
"go_doc_comment_line.jinja",
include_str!("templates/go_doc_comment_line.jinja"),
),
(
"go_doc_block_line.jinja",
include_str!("templates/go_doc_block_line.jinja"),
),
(
"service_register_comment.jinja",
include_str!("templates/service_register_comment.jinja"),
),
(
"service_variant_comment.jinja",
include_str!("templates/service_variant_comment.jinja"),
),
(
"service_configurator_comment.jinja",
include_str!("templates/service_configurator_comment.jinja"),
),
(
"service_entrypoint_comment.jinja",
include_str!("templates/service_entrypoint_comment.jinja"),
),
(
"service_method_header.jinja",
include_str!("templates/service_method_header.jinja"),
),
(
"service_registration_call_header.jinja",
include_str!("templates/service_registration_call_header.jinja"),
),
(
"service_variant_call_header.jinja",
include_str!("templates/service_variant_call_header.jinja"),
),
(
"service_call_arg_line.jinja",
include_str!("templates/service_call_arg_line.jinja"),
),
(
"service_registration_return.jinja",
include_str!("templates/service_registration_return.jinja"),
),
(
"service_configurator_call.jinja",
include_str!("templates/service_configurator_call.jinja"),
),
(
"service_call_arg_continuation.jinja",
include_str!("templates/service_call_arg_continuation.jinja"),
),
(
"service_entrypoint_call_header.jinja",
include_str!("templates/service_entrypoint_call_header.jinja"),
),
(
"service_entrypoint_return_opaque_err.jinja",
include_str!("templates/service_entrypoint_return_opaque_err.jinja"),
),
(
"service_entrypoint_return_opaque.jinja",
include_str!("templates/service_entrypoint_return_opaque.jinja"),
),
(
"service_entrypoint_return_err.jinja",
include_str!("templates/service_entrypoint_return_err.jinja"),
),
(
"go_const_declaration.jinja",
include_str!("templates/go_const_declaration.jinja"),
),
(
"extern_trampoline_decl.jinja",
include_str!("templates/extern_trampoline_decl.jinja"),
),
(
"plugin_trampoline_decl.jinja",
include_str!("templates/plugin_trampoline_decl.jinja"),
),
(
"vtable_method_field.jinja",
include_str!("templates/vtable_method_field.jinja"),
),
(
"handle_registry_var.jinja",
include_str!("templates/handle_registry_var.jinja"),
),
(
"vtable_free_string_field.jinja",
include_str!("templates/vtable_free_string_field.jinja"),
),
(
"trait_free_string_func.jinja",
include_str!("templates/trait_free_string_func.jinja"),
),
(
"trampoline_bytes_param_decode.jinja",
include_str!("templates/trampoline_bytes_param_decode.jinja"),
),
(
"trampoline_raw_message_decode.jinja",
include_str!("templates/trampoline_raw_message_decode.jinja"),
),
(
"plugin_trampoline_lifecycle.jinja",
include_str!("templates/plugin_trampoline_lifecycle.jinja"),
),
(
"trait_interface_method.jinja",
include_str!("templates/trait_interface_method.jinja"),
),
(
"register_vtable_method_field.jinja",
include_str!("templates/register_vtable_method_field.jinja"),
),
(
"base_visitor_method.jinja",
include_str!("templates/base_visitor_method.jinja"),
),
(
"trait_interface_header.jinja",
include_str!("templates/trait_interface_header.jinja"),
),
(
"plugin_method_signature.jinja",
include_str!("templates/plugin_method_signature.jinja"),
),
(
"register_function_header.jinja",
include_str!("templates/register_function_header.jinja"),
),
(
"unregister_function_header.jinja",
include_str!("templates/unregister_function_header.jinja"),
),
(
"vtable_struct_init.jinja",
include_str!("templates/vtable_struct_init.jinja"),
),
("register_c_call.jinja", include_str!("templates/register_c_call.jinja")),
(
"unregister_c_call.jinja",
include_str!("templates/unregister_c_call.jinja"),
),
(
"unregister_fn_header.jinja",
include_str!("templates/unregister_fn_header.jinja"),
),
(
"clear_function_header.jinja",
include_str!("templates/clear_function_header.jinja"),
),
("clear_c_call.jinja", include_str!("templates/clear_c_call.jinja")),
(
"visitor_interface_method.jinja",
include_str!("templates/visitor_interface_method.jinja"),
),
(
"trampoline_param_decode.jinja",
include_str!("templates/trampoline_param_decode.jinja"),
),
(
"trampoline_func_call.jinja",
include_str!("templates/trampoline_func_call.jinja"),
),
("c_var_decl.jinja", include_str!("templates/c_var_decl.jinja")),
(
"c_func_call_assign.jinja",
include_str!("templates/c_func_call_assign.jinja"),
),
("c_defer_free.jinja", include_str!("templates/c_defer_free.jinja")),
("c_func_call.jinja", include_str!("templates/c_func_call.jinja")),
("package_and_cgo.jinja", include_str!("templates/package_and_cgo.jinja")),
(
"trampoline_signature.jinja",
include_str!("templates/trampoline_signature.jinja"),
),
(
"handle_type_assertion.jinja",
include_str!("templates/handle_type_assertion.jinja"),
),
(
"plugin_method_trampoline_header.jinja",
include_str!("templates/plugin_method_trampoline_header.jinja"),
),
("type_doc_header.jinja", include_str!("templates/type_doc_header.jinja")),
(
"enum_string_method.jinja",
include_str!("templates/enum_string_method.jinja"),
),
(
"enum_marshal_json.jinja",
include_str!("templates/enum_marshal_json.jinja"),
),
(
"passthrough_raw_message_enum_body.jinja",
include_str!("templates/passthrough_raw_message_enum_body.jinja"),
),
(
"untagged_union_marshalers.jinja",
include_str!("templates/untagged_union_marshalers.jinja"),
),
(
"enum_unmarshal_json.jinja",
include_str!("templates/enum_unmarshal_json.jinja"),
),
("variant_comment.jinja", include_str!("templates/variant_comment.jinja")),
("tag_field.jinja", include_str!("templates/tag_field.jinja")),
("variant_field.jinja", include_str!("templates/variant_field.jinja")),
(
"method_receiver_static.jinja",
include_str!("templates/method_receiver_static.jinja"),
),
(
"method_receiver_instance.jinja",
include_str!("templates/method_receiver_instance.jinja"),
),
("method_return.jinja", include_str!("templates/method_return.jinja")),
(
"method_empty_return.jinja",
include_str!("templates/method_empty_return.jinja"),
),
(
"method_signature_instance.jinja",
include_str!("templates/method_signature_instance.jinja"),
),
(
"method_signature_static.jinja",
include_str!("templates/method_signature_static.jinja"),
),
(
"streaming_method_signature.jinja",
include_str!("templates/streaming_method_signature.jinja"),
),
(
"streaming_method_body.jinja",
include_str!("templates/streaming_method_body.jinja"),
),
("free_string.jinja", include_str!("templates/free_string.jinja")),
("free_type.jinja", include_str!("templates/free_type.jinja")),
(
"visitor_field_doc.jinja",
include_str!("templates/visitor_field_doc.jinja"),
),
("visitor_field.jinja", include_str!("templates/visitor_field.jinja")),
("c_options_var.jinja", include_str!("templates/c_options_var.jinja")),
(
"c_call_with_json.jinja",
include_str!("templates/c_call_with_json.jinja"),
),
(
"bytes_to_c_pointer.jinja",
include_str!("templates/bytes_to_c_pointer.jinja"),
),
(
"tagged_union_struct_header.jinja",
include_str!("templates/tagged_union_struct_header.jinja"),
),
(
"data_enum_interface.jinja",
include_str!("templates/data_enum_interface.jinja"),
),
(
"data_enum_struct_header.jinja",
include_str!("templates/data_enum_struct_header.jinja"),
),
(
"data_enum_scalar_tuple_field.jinja",
include_str!("templates/data_enum_scalar_tuple_field.jinja"),
),
(
"data_enum_marker_method.jinja",
include_str!("templates/data_enum_marker_method.jinja"),
),
(
"data_enum_type_method.jinja",
include_str!("templates/data_enum_type_method.jinja"),
),
(
"data_enum_scalar_marshalers.jinja",
include_str!("templates/data_enum_scalar_marshalers.jinja"),
),
(
"data_enum_marshal_json_header.jinja",
include_str!("templates/data_enum_marshal_json_header.jinja"),
),
(
"data_enum_marshal_aux_field.jinja",
include_str!("templates/data_enum_marshal_aux_field.jinja"),
),
(
"data_enum_marshal_json_values_header.jinja",
include_str!("templates/data_enum_marshal_json_values_header.jinja"),
),
(
"data_enum_marshal_aux_value.jinja",
include_str!("templates/data_enum_marshal_aux_value.jinja"),
),
(
"data_enum_marshal_json_footer.jinja",
include_str!("templates/data_enum_marshal_json_footer.jinja"),
),
(
"data_enum_unmarshal_header.jinja",
include_str!("templates/data_enum_unmarshal_header.jinja"),
),
(
"data_enum_unmarshal_empty_check.jinja",
include_str!("templates/data_enum_unmarshal_empty_check.jinja"),
),
(
"data_enum_unmarshal_shape_variant.jinja",
include_str!("templates/data_enum_unmarshal_shape_variant.jinja"),
),
(
"data_enum_unmarshal_unknown_shape.jinja",
include_str!("templates/data_enum_unmarshal_unknown_shape.jinja"),
),
(
"data_enum_unmarshal_wire_header.jinja",
include_str!("templates/data_enum_unmarshal_wire_header.jinja"),
),
(
"data_enum_unmarshal_wire_variant.jinja",
include_str!("templates/data_enum_unmarshal_wire_variant.jinja"),
),
(
"data_enum_unmarshal_unknown_type.jinja",
include_str!("templates/data_enum_unmarshal_unknown_type.jinja"),
),
(
"tagged_union_tag_field.jinja",
include_str!("templates/tagged_union_tag_field.jinja"),
),
(
"tagged_union_variant_field.jinja",
include_str!("templates/tagged_union_variant_field.jinja"),
),
(
"tagged_union_marshal_json_header.jinja",
include_str!("templates/tagged_union_marshal_json_header.jinja"),
),
(
"tagged_union_marshal_variant.jinja",
include_str!("templates/tagged_union_marshal_variant.jinja"),
),
(
"tagged_union_marshal_json_footer.jinja",
include_str!("templates/tagged_union_marshal_json_footer.jinja"),
),
(
"tagged_union_unmarshal_json_header.jinja",
include_str!("templates/tagged_union_unmarshal_json_header.jinja"),
),
(
"tagged_union_unmarshal_variant.jinja",
include_str!("templates/tagged_union_unmarshal_variant.jinja"),
),
(
"tagged_union_unmarshal_json_footer.jinja",
include_str!("templates/tagged_union_unmarshal_json_footer.jinja"),
),
(
"struct_marshal_json_header.jinja",
include_str!("templates/struct_marshal_json_header.jinja"),
),
(
"struct_marshal_aux_field.jinja",
include_str!("templates/struct_marshal_aux_field.jinja"),
),
(
"struct_marshal_aux_init.jinja",
include_str!("templates/struct_marshal_aux_init.jinja"),
),
(
"struct_marshal_bytes_field_pointer.jinja",
include_str!("templates/struct_marshal_bytes_field_pointer.jinja"),
),
(
"struct_marshal_bytes_field_nonpointer.jinja",
include_str!("templates/struct_marshal_bytes_field_nonpointer.jinja"),
),
(
"struct_marshal_regular_field.jinja",
include_str!("templates/struct_marshal_regular_field.jinja"),
),
(
"struct_marshal_json_footer.jinja",
include_str!("templates/struct_marshal_json_footer.jinja"),
),
(
"struct_unmarshal_json_header.jinja",
include_str!("templates/struct_unmarshal_json_header.jinja"),
),
(
"struct_unmarshal_raw_field.jinja",
include_str!("templates/struct_unmarshal_raw_field.jinja"),
),
(
"struct_unmarshal_after_raw.jinja",
include_str!("templates/struct_unmarshal_after_raw.jinja"),
),
(
"struct_unmarshal_copy_field.jinja",
include_str!("templates/struct_unmarshal_copy_field.jinja"),
),
(
"struct_unmarshal_data_enum_slice.jinja",
include_str!("templates/struct_unmarshal_data_enum_slice.jinja"),
),
(
"struct_unmarshal_data_enum_value.jinja",
include_str!("templates/struct_unmarshal_data_enum_value.jinja"),
),
(
"struct_unmarshal_json_footer.jinja",
include_str!("templates/struct_unmarshal_json_footer.jinja"),
),
(
"config_option_type_header.jinja",
include_str!("templates/config_option_type_header.jinja"),
),
(
"config_with_option_comment.jinja",
include_str!("templates/config_with_option_comment.jinja"),
),
(
"config_with_option_signature.jinja",
include_str!("templates/config_with_option_signature.jinja"),
),
(
"config_new_constructor_header.jinja",
include_str!("templates/config_new_constructor_header.jinja"),
),
(
"config_default_field.jinja",
include_str!("templates/config_default_field.jinja"),
),
(
"config_new_constructor_footer.jinja",
include_str!("templates/config_new_constructor_footer.jinja"),
),
(
"marshal_receiver_to_c.jinja",
include_str!("templates/marshal_receiver_to_c.jinja"),
),
(
"c_call_with_ptr_assign.jinja",
include_str!("templates/c_call_with_ptr_assign.jinja"),
),
("c_call_unit.jinja", include_str!("templates/c_call_unit.jinja")),
(
"free_string_on_error.jinja",
include_str!("templates/free_string_on_error.jinja"),
),
(
"return_value_and_nil.jinja",
include_str!("templates/return_value_and_nil.jinja"),
),
(
"receiver_ptr_assign.jinja",
include_str!("templates/receiver_ptr_assign.jinja"),
),
(
"param_string_optional.jinja",
include_str!("templates/param_string_optional.jinja"),
),
(
"param_string_required.jinja",
include_str!("templates/param_string_required.jinja"),
),
(
"param_opaque_cast.jinja",
include_str!("templates/param_opaque_cast.jinja"),
),
(
"param_enum_to_i32.jinja",
include_str!("templates/param_enum_to_i32.jinja"),
),
(
"param_named_type.jinja",
include_str!("templates/param_named_type.jinja"),
),
(
"param_vec_or_map.jinja",
include_str!("templates/param_vec_or_map.jinja"),
),
(
"param_optional_opaque.jinja",
include_str!("templates/param_optional_opaque.jinja"),
),
(
"param_optional_named_inline.jinja",
include_str!("templates/param_optional_named_inline.jinja"),
),
(
"param_optional_decl.jinja",
include_str!("templates/param_optional_decl.jinja"),
),
(
"param_primitive_bool.jinja",
include_str!("templates/param_primitive_bool.jinja"),
),
(
"param_primitive_numeric.jinja",
include_str!("templates/param_primitive_numeric.jinja"),
),
(
"param_optional_primitive_bool.jinja",
include_str!("templates/param_optional_primitive_bool.jinja"),
),
(
"param_optional_primitive_numeric.jinja",
include_str!("templates/param_optional_primitive_numeric.jinja"),
),
(
"c_call_with_ptr_assign.jinja",
include_str!("templates/c_call_with_ptr_assign.jinja"),
),
(
"plugin_free_user_data_extern.jinja",
include_str!("templates/plugin_free_user_data_extern.jinja"),
),
(
"vtable_free_user_data_field.jinja",
include_str!("templates/vtable_free_user_data_field.jinja"),
),
(
"impl_method_call_err.jinja",
include_str!("templates/impl_method_call_err.jinja"),
),
(
"impl_method_call_result_err.jinja",
include_str!("templates/impl_method_call_result_err.jinja"),
),
(
"impl_method_call_result.jinja",
include_str!("templates/impl_method_call_result.jinja"),
),
(
"plugin_free_user_data_func.jinja",
include_str!("templates/plugin_free_user_data_func.jinja"),
),
("go_string_cast.jinja", include_str!("templates/go_string_cast.jinja")),
("var_bytes_decl.jinja", include_str!("templates/var_bytes_decl.jinja")),
("if_nil_check.jinja", include_str!("templates/if_nil_check.jinja")),
("var_assign.jinja", include_str!("templates/var_assign.jinja")),
("var_type_decl.jinja", include_str!("templates/var_type_decl.jinja")),
(
"json_unmarshal_unsafe.jinja",
include_str!("templates/json_unmarshal_unsafe.jinja"),
),
(
"json_unmarshal_simple.jinja",
include_str!("templates/json_unmarshal_simple.jinja"),
),
("var_assign_m.jinja", include_str!("templates/var_assign_m.jinja")),
("var_assign_cast.jinja", include_str!("templates/var_assign_cast.jinja")),
(
"json_unmarshal_rawdata.jinja",
include_str!("templates/json_unmarshal_rawdata.jinja"),
),
(
"c_options_var_decl.jinja",
include_str!("templates/c_options_var_decl.jinja"),
),
(
"c_options_from_json.jinja",
include_str!("templates/c_options_from_json.jinja"),
),
(
"c_options_defer_free.jinja",
include_str!("templates/c_options_defer_free.jinja"),
),
(
"c_options_from_value.jinja",
include_str!("templates/c_options_from_value.jinja"),
),
("c_bridge_new.jinja", include_str!("templates/c_bridge_new.jinja")),
(
"c_bridge_defer_free.jinja",
include_str!("templates/c_bridge_defer_free.jinja"),
),
(
"c_options_set_visitor.jinja",
include_str!("templates/c_options_set_visitor.jinja"),
),
("c_convert_call.jinja", include_str!("templates/c_convert_call.jinja")),
(
"c_result_defer_free.jinja",
include_str!("templates/c_result_defer_free.jinja"),
),
(
"c_result_to_json.jinja",
include_str!("templates/c_result_to_json.jinja"),
),
(
"method_update_from_json.jinja",
include_str!("templates/method_update_from_json.jinja"),
),
(
"method_return_simple.jinja",
include_str!("templates/method_return_simple.jinja"),
),
("c_call_simple.jinja", include_str!("templates/c_call_simple.jinja")),
(
"method_receiver_ptr_assign.jinja",
include_str!("templates/method_receiver_ptr_assign.jinja"),
),
(
"trampoline_func_signature.jinja",
include_str!("templates/trampoline_func_signature.jinja"),
),
("c_ptr_assign.jinja", include_str!("templates/c_ptr_assign.jinja")),
(
"free_type_on_error.jinja",
include_str!("templates/free_type_on_error.jinja"),
),
("c_json_to_json.jinja", include_str!("templates/c_json_to_json.jinja")),
("var_decl_type.jinja", include_str!("templates/var_decl_type.jinja")),
(
"json_unmarshal_error.jinja",
include_str!("templates/json_unmarshal_error.jinja"),
),
("var_decl_slice.jinja", include_str!("templates/var_decl_slice.jinja")),
(
"c_options_from_json_with_name.jinja",
include_str!("templates/c_options_from_json_with_name.jinja"),
),
(
"c_options_defer_free_with_name.jinja",
include_str!("templates/c_options_defer_free_with_name.jinja"),
),
(
"c_ptr_assign_func.jinja",
include_str!("templates/c_ptr_assign_func.jinja"),
),
(
"c_conversion_result_free.jinja",
include_str!("templates/c_conversion_result_free.jinja"),
),
(
"c_conversion_result_to_json.jinja",
include_str!("templates/c_conversion_result_to_json.jinja"),
),
(
"c_free_string_defer.jinja",
include_str!("templates/c_free_string_defer.jinja"),
),
(
"bytes_result_call.jinja",
include_str!("templates/bytes_result_call.jinja"),
),
(
"generate_cgo_flags.go.jinja",
include_str!("templates/generate_cgo_flags.go.jinja"),
),
(
"cmd_download_ffi_main.go.jinja",
include_str!("templates/cmd_download_ffi_main.go.jinja"),
),
("embed_ffi.go.jinja", include_str!("templates/embed_ffi.go.jinja")),
];
pub(crate) fn make_env() -> Environment<'static> {
let mut env = Environment::new();
env.set_trim_blocks(true);
env.set_lstrip_blocks(true);
env.set_keep_trailing_newline(true);
for (name, src) in TEMPLATES {
env.add_template(name, src).expect("built-in template is valid");
}
env
}
pub(crate) fn render(template_name: &str, ctx: minijinja::Value) -> String {
make_env()
.get_template(template_name)
.unwrap_or_else(|_| panic!("template {template_name} not found"))
.render(ctx)
.unwrap_or_else(|e| panic!("template {template_name} failed to render: {e}"))
}