Files
Gryphn-Utils/utils/gryphn_string.h
2025-08-03 13:29:41 -04:00

76 lines
3.0 KiB
C

#pragma once
#include "gryphn_bool.h"
typedef char gnChar;
typedef struct gnString_t* gnString;
gnString gnCreateStringFromConstCharPtr(const gnChar* input);
gnString gnCreateStringFromCharPtr(gnChar* input);
gnString gnCreateStringFromChar(gnChar input);
gnString gnCreateEmptyString(void);
#define gnCreateString(input) _Generic((input), \
const gnChar*: gnCreateStringFromConstCharPtr, \
gnChar*: gnCreateStringFromCharPtr, \
gnChar: gnCreateStringFromChar \
)(input)
const char* gnToCString(const gnString string);
int gnStringLength(const gnString string);
gnString gnSubstring(const gnString string, int index1, int index2);
int gnLetterCount(const gnString string, const gnChar letter);
int gnStringFindChar(gnString string, const gnChar letter);
int gnStringFindString(gnString string, const gnString value);
#define gnStringFind(string, value) _Generic((value), \
const gnChar: gnStringFindChar, \
const gnString: gnStringFindValue \
)(string, value)
void gnAddCharToString(gnString string, gnChar val);
void gnAddCharPtrToString(gnString string, gnChar* val);
void gnAddConstCharPtrToString(gnString string, const gnChar* val);
void gnAddContGnStringToString(gnString string, gnString val);
#define gnAddToString(string, value) _Generic((value), \
gnChar: gnAddCharToString, \
int: gnAddCharToString, \
gnChar*: gnAddCharPtrToString, \
const gnChar*: gnAddConstCharPtrToString, \
gnString: gnAddContGnStringToString \
)(string, value)
gnString gnCombineStringsChar(const gnString string, gnChar val);
gnString gnCombineStringsCharPtr(const gnString string, gnChar* val);
gnString gnCombineStringsConstCharPtr(const gnString string, const gnChar* val);
gnString gnCombineStringsString(const gnString string, const gnString val);
#define gnCombineStrings(string, value) _Generic((value), \
gnChar: gnCombineStringsChar, \
int: gnCombineStringsChar, \
gnChar*: gnCombineStringsCharPtr, \
const gnChar*: gnCombineStringsConstCharPtr, \
gnString: gnCombineStringsString \
)(string, value)
gnBool gnStringEqualsCharPtr(const gnString string, gnChar* val);
gnBool gnStringEqualsConstCharPtr(const gnString string,const gnChar* val);
gnBool gnStringEqualsString(const gnString string, const gnString val);
#define gnStringEquals(string, value) _Generic((value), \
gnChar*: gnStringEqualsCharPtr, \
const gnChar*: gnStringEqualsConstCharPtr, \
gnString: gnStringEqualsString \
)(string, value)
gnChar gnGetCharAt(const gnString string, int index);
void gnSetCharAt(gnString string, int index, gnChar letter);
void gnSetStringToChar(gnString string, gnChar input);
void gnSetStringToCharPtr(gnString string, gnChar* input);
void gnSetStringToConstCharPtr(gnString string, const gnChar* input);
void gnSetStringToString(gnString string, const gnString input);
#define gnSetString(string, value) _Generic((value), \
gnChar: gnSetStringToChar, \
int: gnSetStringToChar, \
gnChar*: gnSetStringToCharPtr, \
const gnChar*: gnSetStringToConstCharPtr, \
gnString: gnSetStringToString \
)(string, value)