reorder operations and better docs for use case simplification
This commit is contained in:
parent
047babeb1b
commit
c1f0e5f1a9
17
simap.h
17
simap.h
@ -7,13 +7,6 @@
|
|||||||
#include "amap.h"
|
#include "amap.h"
|
||||||
#include "arena.h/arena.h"
|
#include "arena.h/arena.h"
|
||||||
|
|
||||||
/** This is to ensure 8byte storage of pointers (with possible padding) */
|
|
||||||
union simap_ptr64 {
|
|
||||||
void *ptr;
|
|
||||||
uint64_t u64;
|
|
||||||
};
|
|
||||||
typedef union simap_ptr64 simap_ptr64;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A "peasantly" map data structure backed by arena.h - basically a toy data structure...
|
* A "peasantly" map data structure backed by arena.h - basically a toy data structure...
|
||||||
*
|
*
|
||||||
@ -64,12 +57,22 @@ static inline simap_instance simap_create() {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void* simap(void *amap_instance, AMAP_OP op, const char *key, void *ptr);
|
||||||
|
|
||||||
|
/** The first 8 characters are stored as uint64_t for fast checks */
|
||||||
union simap_c64 {
|
union simap_c64 {
|
||||||
char str8[8];
|
char str8[8];
|
||||||
uint64_t u64;
|
uint64_t u64;
|
||||||
};
|
};
|
||||||
typedef union simap_char64 simap_char64;
|
typedef union simap_char64 simap_char64;
|
||||||
|
|
||||||
|
/** This is to ensure 8byte storage of pointers (with possible padding) */
|
||||||
|
union simap_ptr64 {
|
||||||
|
void *ptr;
|
||||||
|
uint64_t u64;
|
||||||
|
};
|
||||||
|
typedef union simap_ptr64 simap_ptr64;
|
||||||
|
|
||||||
static inline simap_ptr64 *simap_search_internal(simap_instance *map, const char *key) {
|
static inline simap_ptr64 *simap_search_internal(simap_instance *map, const char *key) {
|
||||||
/* Construct prefix (fast-key) */
|
/* Construct prefix (fast-key) */
|
||||||
size_t keylen = strlen(key);
|
size_t keylen = strlen(key);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user