Whooops. Merging errors
This commit is contained in:
parent
0de4ca1848
commit
bbe9971035
@ -30,14 +30,14 @@ NODISCARD VecU8 generate_margaret_png_texture_data_methods(SpanU8 format_signatu
|
||||
/* Non clonable structure */
|
||||
VecU8_append_vec(&res, VecU8_fmt(
|
||||
"typedef struct {\n"
|
||||
SPACE4 "FILE* fp;\n"
|
||||
SPACE4 "png_structp pngshka;\n"
|
||||
SPACE4 "png_infop info;\n"
|
||||
SPACE4 "png_infop end_info;\n"
|
||||
SPACE "FILE* fp;\n"
|
||||
SPACE "png_structp pngshka;\n"
|
||||
SPACE "png_infop info;\n"
|
||||
SPACE "png_infop end_info;\n"
|
||||
"} %s;\n\n"
|
||||
"void %s_drop(%s self) {\n"
|
||||
SPACE4 "png_destroy_read_struct(&self.pngshka, &self.info, &self.end_info);\n"
|
||||
SPACE4 "fclose(self.fp);\n"
|
||||
SPACE "png_destroy_read_struct(&self.pngshka, &self.info, &self.end_info);\n"
|
||||
SPACE "fclose(self.fp);\n"
|
||||
"}\n\n", promise, promise, promise));
|
||||
|
||||
VecU8_append_vec(&res, generate_result_template_inst(promise, cstr("VecU8"), false, false));
|
||||
|
||||
@ -82,7 +82,7 @@ NODISCARD VecU8 generate_texture_data_struct_and_necc_methods(SpanU8 tex, SpanU8
|
||||
SpanU8 resoftex = VecU8_to_span(&g_resoftex);
|
||||
VecU8_append_vec(&res, generate_result_template_inst(tex, cstr("SpanU8"), false, true));
|
||||
/* I also add this, because why not?? Maye I will use it in the future... */
|
||||
VecU8_append_vec(&res, generate_result_template_inst(tex, cstr("VecU8"), false, false));1
|
||||
VecU8_append_vec(&res, generate_result_template_inst(tex, cstr("VecU8"), false, false));
|
||||
/* Method _from_bitmap_text()
|
||||
* We assume that bytes are tightly packed in member type */
|
||||
VecU8_append_vec(&res, VecU8_fmt(
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
|
||||
#include "codegen.h"
|
||||
|
||||
|
||||
// todo: add macro that iterates over vector
|
||||
|
||||
/* if !primitive, requires methods T_drop, and, if also clonable, requires method T_clone */
|
||||
@ -575,17 +574,17 @@ NODISCARD VecU8 generate_result_template_inst(SpanU8 OkT, SpanU8 ErrT, bool ok_t
|
||||
|
||||
VecU8_append_span(&res, cstr(
|
||||
"typedef struct {\n"
|
||||
SPACE4 "Result_variant variant;\n"));
|
||||
SPACE "Result_variant variant;\n"));
|
||||
if (ok_t_void && !err_t_void) {
|
||||
VecU8_append_vec(&res, VecU8_fmt(SPACE4 "%s err;\n", ErrT));
|
||||
VecU8_append_vec(&res, VecU8_fmt(SPACE "%s err;\n", ErrT));
|
||||
} else if (!ok_t_void && err_t_void) {
|
||||
VecU8_append_vec(&res, VecU8_fmt(SPACE4 "%s ok;\n", OkT));
|
||||
VecU8_append_vec(&res, VecU8_fmt(SPACE "%s ok;\n", OkT));
|
||||
} else {
|
||||
VecU8_append_vec(&res, VecU8_fmt(
|
||||
SPACE4 "union {\n"
|
||||
SPACE4 SPACE4 "%s ok;\n"
|
||||
SPACE4 SPACE4 "%s err;\n"
|
||||
SPACE4 "};\n", OkT, ErrT));
|
||||
SPACE "union {\n"
|
||||
SPACE SPACE "%s ok;\n"
|
||||
SPACE SPACE "%s err;\n"
|
||||
SPACE "};\n", OkT, ErrT));
|
||||
}
|
||||
VecU8_append_vec(&res, VecU8_fmt("} %s;\n\n", ResultT));
|
||||
|
||||
@ -594,18 +593,18 @@ NODISCARD VecU8 generate_result_template_inst(SpanU8 OkT, SpanU8 ErrT, bool ok_t
|
||||
"void %s_drop(%s self) {\n", ResultT, ResultT));
|
||||
if (ok_t_primitive && !err_t_primitive) {
|
||||
VecU8_append_vec(&res, VecU8_fmt(
|
||||
SPACE4 "if (self.variant == Result_Err)\n"
|
||||
SPACE4 SPACE4 "%s_drop(self.err);\n", ErrT));
|
||||
SPACE "if (self.variant == Result_Err)\n"
|
||||
SPACE SPACE "%s_drop(self.err);\n", ErrT));
|
||||
} else if (!ok_t_primitive && err_t_primitive) {
|
||||
VecU8_append_vec(&res, VecU8_fmt(
|
||||
SPACE4 "if (self.variant == Result_Ok)\n"
|
||||
SPACE4 SPACE4 "%s_drop(self.ok);\n", OkT));
|
||||
SPACE "if (self.variant == Result_Ok)\n"
|
||||
SPACE SPACE "%s_drop(self.ok);\n", OkT));
|
||||
} else {
|
||||
VecU8_append_vec(&res, VecU8_fmt(
|
||||
SPACE4 "if (self.variant == Result_Ok)\n"
|
||||
SPACE4 SPACE4 "%s_drop(self.ok);\n"
|
||||
SPACE4 "else\n"
|
||||
SPACE4 SPACE4 "%s_drop(self.err);\n", OkT, ErrT));
|
||||
SPACE "if (self.variant == Result_Ok)\n"
|
||||
SPACE SPACE "%s_drop(self.ok);\n"
|
||||
SPACE "else\n"
|
||||
SPACE SPACE "%s_drop(self.err);\n", OkT, ErrT));
|
||||
}
|
||||
VecU8_append_span(&res, cstr("}\n\n"));
|
||||
}
|
||||
@ -627,14 +626,14 @@ void generate_eve_header_of_result_type_instantiation(
|
||||
|
||||
void generate_guarded_header_of_result_type_instantiation(
|
||||
SpanU8 layer, SpanU8 bonus_ns, SpanU8 OkT, SpanU8 ErrT, SpanU8 dependencies, bool ok_t_primitive, bool err_t_primitive
|
||||
) {
|
||||
){
|
||||
assert(layer.len > 1);
|
||||
VecU8 filename = get_ResultType_inst_name(OkT, ErrT);
|
||||
VecU8 path = VecU8_fmt("%s/%s%s%s", layer, bonus_ns, bonus_ns.len ? cstr("/") : cstr(""), VecU8_to_span(&filename));
|
||||
GeneratedHeader head = begin_header(VecU8_to_span(&path));
|
||||
VecU8_drop(path);
|
||||
VecU8_drop(filename);
|
||||
|
||||
}
|
||||
|
||||
typedef struct{
|
||||
SpanU8 T;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user