xaizek / hstr (License: Apachev2) (since 2018-12-07)
Bash and Zsh shell history suggest box - easily view, navigate, search and manage your command history.
<root> / src / include / hashset.h (f9a9717235c1e776fd86a07cb78964bea5383ab2) (1,108B) (mode 100644) [raw]
/*
 ============================================================================
 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
Hints

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