#ifndef RAVA_REPL_HISTORY_H #define RAVA_REPL_HISTORY_H #include "repl_types.h" typedef struct { char **entries; size_t count; size_t capacity; size_t position; } RavaREPLHistory_t; RavaREPLHistory_t* rava_repl_history_create(size_t max_size); void rava_repl_history_destroy(RavaREPLHistory_t *history); void rava_repl_history_add(RavaREPLHistory_t *history, const char *entry); const char* rava_repl_history_get(RavaREPLHistory_t *history, size_t index); const char* rava_repl_history_prev(RavaREPLHistory_t *history); const char* rava_repl_history_next(RavaREPLHistory_t *history); void rava_repl_history_reset_position(RavaREPLHistory_t *history); bool rava_repl_history_save(RavaREPLHistory_t *history, const char *filename); bool rava_repl_history_load(RavaREPLHistory_t *history, const char *filename); #endif