runic.h// runic_t// runic_obj_trunic_t runic_open(const char* path, int mode);bool runic_close(runic_t r);runic_obj_t runic_root(runic_t r);uint64_t runic_free(runic_t r);uint64_t runic_remaining(runic_t r, bool silent);bool runic_set_root(runic_t* r, runic_obj_t ro);runic_t runic_shrink(runic_t* r);runic_obj_t runic_alloc_node(runic_t* r);runic_obj_t runic_alloc_atom(runic_t* r, size_t sz);runic_obj_t runic_alloc_atom_str(runic_t* r, const char* value);runic_obj_ty_t runic_obj_ty(runic_obj_t ro);runic_obj_t runic_node_left(runic_obj_t ro);runic_obj_t runic_node_right(runic_obj_t ro);bool runic_node_set_left(runic_obj_t* parent, runic_obj_t child);bool runic_node_set_right(runic_obj_t* parent, runic_obj_t child);size_t runic_atom_size(runic_obj_t ro);bool runic_atom_read(runic_obj_t ro, char* c);bool runic_atom_write(runic_obj_t* ro, const char* val);