Initial upload
This commit is contained in:
30
error.c
Normal file
30
error.c
Normal file
@@ -0,0 +1,30 @@
|
||||
/* vim: set filetype=c: */
|
||||
|
||||
#include "error.h"
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
Result Result_err(char* err_str) {
|
||||
Result res;
|
||||
res.has_err = true;
|
||||
res.err_str = err_str;
|
||||
return res;
|
||||
}
|
||||
|
||||
Result Result_noerr() {
|
||||
Result res;
|
||||
res.has_err = false;
|
||||
res.err_str = NULL;
|
||||
return res;
|
||||
}
|
||||
|
||||
extern void Result_print_err_or(const Result obj, const char* err_prefix, const char* no_err, FILE* err_file, FILE* no_err_file) {
|
||||
if(obj.has_err) {
|
||||
if(err_prefix != NULL)
|
||||
fprintf(err_file, "%s", err_prefix);
|
||||
assert(obj.err_str != NULL);
|
||||
fprintf(err_file, "%s\n", obj.err_str);
|
||||
}
|
||||
else if(no_err != NULL)
|
||||
fprintf(no_err_file, "%s\n", no_err);
|
||||
}
|
||||
Reference in New Issue
Block a user