#ifndef MLX_MAP_H
#define MLX_MAP_H
#include "mlx/c/array.h"
#include "mlx/c/string.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct mlx_map_string_to_array_ {
void* ctx;
} mlx_map_string_to_array;
mlx_map_string_to_array mlx_map_string_to_array_new(void);
int mlx_map_string_to_array_set(
mlx_map_string_to_array* map,
const mlx_map_string_to_array src);
int mlx_map_string_to_array_free(mlx_map_string_to_array map);
int mlx_map_string_to_array_insert(
mlx_map_string_to_array map,
const char* key,
const mlx_array value);
int mlx_map_string_to_array_get(
mlx_array* value,
const mlx_map_string_to_array map,
const char* key);
typedef struct mlx_map_string_to_array_iterator_ {
void* ctx;
void* map_ctx;
} mlx_map_string_to_array_iterator;
mlx_map_string_to_array_iterator mlx_map_string_to_array_iterator_new(
mlx_map_string_to_array map);
int mlx_map_string_to_array_iterator_free(mlx_map_string_to_array_iterator it);
int mlx_map_string_to_array_iterator_next(
const char** key,
mlx_array* value,
mlx_map_string_to_array_iterator it);
typedef struct mlx_map_string_to_string_ {
void* ctx;
} mlx_map_string_to_string;
mlx_map_string_to_string mlx_map_string_to_string_new(void);
int mlx_map_string_to_string_set(
mlx_map_string_to_string* map,
const mlx_map_string_to_string src);
int mlx_map_string_to_string_free(mlx_map_string_to_string map);
int mlx_map_string_to_string_insert(
mlx_map_string_to_string map,
const char* key,
const char* value);
int mlx_map_string_to_string_get(
const char** value,
const mlx_map_string_to_string map,
const char* key);
typedef struct mlx_map_string_to_string_iterator_ {
void* ctx;
void* map_ctx;
} mlx_map_string_to_string_iterator;
mlx_map_string_to_string_iterator mlx_map_string_to_string_iterator_new(
mlx_map_string_to_string map);
int mlx_map_string_to_string_iterator_free(
mlx_map_string_to_string_iterator it);
int mlx_map_string_to_string_iterator_next(
const char** key,
const char** value,
mlx_map_string_to_string_iterator it);
#ifdef __cplusplus
}
#endif
#endif