#pragma once
#include "wrapper_utils.h"
#ifdef __cplusplus
extern "C" {
#endif
llama_rs_status ik_llama_rs_json_schema_to_grammar(
const char * schema_json,
bool force_gbnf,
char ** out_grammar);
void ik_llama_rs_string_free(char * ptr);
typedef struct ik_llama_rs_mtp ik_llama_rs_mtp;
ik_llama_rs_mtp * ik_llama_rs_mtp_init(
struct llama_model * model,
struct llama_context * ctx_tgt,
const struct llama_context_params * cparams_tgt,
int32_t n_max,
int32_t n_min,
float p_min,
int32_t mtp_heads,
float temp);
long ik_llama_rs_mtp_begin(
ik_llama_rs_mtp * spec,
const llama_token * prompt,
size_t n_prompt);
llama_rs_status ik_llama_rs_mtp_step(
ik_llama_rs_mtp * spec,
llama_token * out_tokens,
size_t cap,
size_t * n_out,
int32_t * n_accepted);
void ik_llama_rs_mtp_free(ik_llama_rs_mtp * spec);
#ifdef __cplusplus
}
#endif