#ifndef GEMMSTONE_INCLUDE_GEMMSTONE_MICROKERNEL_FUSER_HPP
#define GEMMSTONE_INCLUDE_GEMMSTONE_MICROKERNEL_FUSER_HPP
#include <cstdint>
#include <vector>
#include "gemmstone/config.hpp"
GEMMSTONE_NAMESPACE_START
namespace microkernel {
static constexpr uint32_t sigilStart = 0xCAFEFADE;
static constexpr uint32_t sigilEnd = 0xFADECAFE;
static constexpr const char *sigilBinary = "@_u_@";
void fuse(std::vector<uint8_t> &binary,
const std::vector<uint8_t> µkernel, int id = 0);
void fuse(std::vector<uint8_t> &binary, const char *source);
bool hasMicrokernels(const char *source);
}
GEMMSTONE_NAMESPACE_END
#endif