Files
armorpaint/base/sources/iron_map.h
T

55 lines
1.3 KiB
C
Raw Normal View History

2024-11-10 22:11:29 +01:00
#pragma once
#include "iron_array.h"
2025-10-15 13:06:40 +02:00
#include <stdint.h>
2024-11-10 22:11:29 +01:00
typedef struct i32_map {
2026-03-15 10:47:53 +01:00
string_array_t *keys;
2026-04-21 10:52:19 +02:00
i32_array_t *values;
2024-11-10 22:11:29 +01:00
} i32_map_t;
typedef struct f32_map {
2026-03-15 10:47:53 +01:00
string_array_t *keys;
2026-04-21 10:52:19 +02:00
f32_array_t *values;
2024-11-10 22:11:29 +01:00
} f32_map_t;
typedef struct any_map {
2026-03-15 10:47:53 +01:00
string_array_t *keys;
2026-04-21 10:52:19 +02:00
any_array_t *values;
2024-11-10 22:11:29 +01:00
} any_map_t;
void i32_map_set(i32_map_t *m, char *k, int v);
void f32_map_set(f32_map_t *m, char *k, float v);
void any_map_set(any_map_t *m, char *k, void *v);
int32_t i32_map_get(i32_map_t *m, char *k);
2025-10-15 13:06:40 +02:00
float f32_map_get(f32_map_t *m, char *k);
void *any_map_get(any_map_t *m, char *k);
2024-11-10 22:11:29 +01:00
2025-10-15 13:06:40 +02:00
void map_delete(any_map_t *m, char *k);
2024-11-10 22:11:29 +01:00
any_array_t *map_keys(any_map_t *m);
2026-08-21 22:35:30 +02:00
void map_free(any_map_t *m);
2024-11-10 22:11:29 +01:00
i32_map_t *i32_map_create();
any_map_t *any_map_create();
// imap
typedef struct i32_imap {
i32_array_t *keys;
i32_array_t *values;
} i32_imap_t;
typedef struct any_imap {
i32_array_t *keys;
any_array_t *values;
} any_imap_t;
2025-10-15 13:06:40 +02:00
void i32_imap_set(i32_imap_t *m, int k, int v);
void any_imap_set(any_imap_t *m, int k, void *v);
int i32_imap_get(i32_imap_t *m, int k);
void *any_imap_get(any_imap_t *m, int k);
void imap_delete(any_imap_t *m, int k);
2024-11-10 22:11:29 +01:00
i32_array_t *imap_keys(any_imap_t *m);
2025-10-15 13:06:40 +02:00
any_imap_t *any_imap_create();