mirror of
https://github.com/Wessel/c-websocket-server.git
synced 2026-07-13 12:07:54 +02:00
feat: Populate repo
This commit is contained in:
20
lib/utils.c
Normal file
20
lib/utils.c
Normal file
@@ -0,0 +1,20 @@
|
||||
/* utils.c */
|
||||
/** @brief Hash `str` to `hash` for use in a switch case
|
||||
*
|
||||
* A string needs to be hashed for it to be used
|
||||
* inside of a switch statement. We want to use a switch
|
||||
* statement instead of an if-else chain for it's
|
||||
* simplicity and lower amount of low-level operations.
|
||||
*
|
||||
* @param str The string to hash
|
||||
*
|
||||
* @returns hash The hashed version of `str`
|
||||
*/
|
||||
unsigned long hash(const char *str) {
|
||||
unsigned long hash = 5381;
|
||||
unsigned long int c;
|
||||
|
||||
while ((c = *str++))
|
||||
hash = ((hash << 5) + hash) + c;
|
||||
return hash;
|
||||
}
|
||||
Reference in New Issue
Block a user