-uint64_t map_get (map_t *map, const void *key_data, uint32_t key_len) {
- return map->impl->get(map->data, key_data, key_len);
+map_val_t map_get (map_t *map, map_key_t key) {
+ return map->impl->get(map->data, key);
+}
+
+map_val_t map_set (map_t *map, map_key_t key, map_val_t new_val) {
+ return map->impl->cas(map->data, key, CAS_EXPECT_WHATEVER, new_val);
+}
+
+map_val_t map_add (map_t *map, map_key_t key, map_val_t new_val) {
+ return map->impl->cas(map->data, key, CAS_EXPECT_DOES_NOT_EXIST, new_val);
+}
+
+map_val_t map_cas (map_t *map, map_key_t key, map_val_t expected_val, map_val_t new_val) {
+ return map->impl->cas(map->data, key, expected_val, new_val);