This repository has been archived on 2024-05-26. You can view files and clone it, but cannot push or open issues or pull requests.
trixy/example/main/c/main.c

49 lines
1.7 KiB
C
Raw Normal View History

#include "../dist/interface.h"
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define println(args...) \
printf("(plugin): "); \
printf(args); \
printf("\n"); \
fflush(stdout);
#define eprintln(args...) \
printf("(plugin): "); \
printf(args); \
printf("\n"); \
fflush(stdout);
int p_main() {
// You can simply call functions ..
outstanding("James");
// .. but they check their inputs:
// This call for example will fail, as a null pointer isn't supported.
//
// A error will be signaled by a 0 return code, then the error can be obtained
// with the `last_error_length` and `last_error_message` functions
if (!outstanding(0x0)) {
int error_length = last_error_length();
char *error = malloc(error_length);
last_error_message(error, error_length);
eprintln("Encountered error: %s", error);
free(error);
}
println("Saying hi!");
string_t hi;
if (!one.hi(&hi, "Adam")) {
int error_length = last_error_length();
char *error = malloc(error_length);
last_error_message(error, error_length);
eprintln("Encountered error: %s", error);
free(error);
}
println("Rust returned: %s", hi);
string_free(hi);
return 0;
}