#pragma once

#include <stdio.h>
#include <erl_nif.h>
#include <unifex/unifex.h>
#include <unifex/payload.h>
#include "../log.h"

/*
 * Declaration of native functions for module .
 * The implementation have to be provided by the user.
 */

/*
 * Functions that manage lib and state lifecycle
 * Functions with 'unifex_' prefix are generated automatically,
 * the user have to implement rest of them.
 */

/*
 * Callbacks for nif lifecycle hooks.
 * Have to be implemented by user.
 */

/*
 * Functions that create the defined output from Nif.
 * They are automatically generated and don't need to be implemented.
 */

/*
 * Functions that send the defined messages from Nif.
 * They are automatically generated and don't need to be implemented.
 */

int send_membrane_log(UnifexEnv* env, UnifexPid pid, int flags, char* level, char* message, char* time, char** tags, unsigned int tags_length);
