/*
============================================================================
Name : hashset.h
Author : martin.dvorak@mindforger.com
Copyright : Apache 2.0
Description : Hash set
============================================================================
*/
#ifndef _HASHSET_H_
#define _HASHSET_H_
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#define HASH_MAP_SIZE 10007
struct HashSetNode {
char *key;
void *value;
struct HashSetNode *next;
};
typedef struct {
struct HashSetNode *lists[HASH_MAP_SIZE];
int currentSize;
} HashSet;
void hashset_init(HashSet *hs);
int hashset_contains(const HashSet *hs, const char *key);
int hashset_add(HashSet *hs, const char *key);
int hashset_size(const HashSet *hs);
char** hashset_keys(const HashSet *hs);
void *hashset_get(const HashSet *hm, const char *key);
int hashset_put(HashSet *hm, const char *key, void *value);
int hashset_remove(const HashSet *hm, const char *key);
void hashset_stat(const HashSet *hm);
void hashset_destroy(HashSet *hs, const bool freeValues);
#endif
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/hstr
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/hstr
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master