SPL/source/buffer/spstr.h
2025-04-20 14:55:44 +02:00

137 lines
1.6 KiB
C

#ifndef SPSTR_H
# define SPSTR_H
#include <stdint.h>
/**
* @brief more secure string to use, should always be null terminated at data + size to allow passing to other standard c string and never reaching out of boundaries
*
*/
typedef struct {
size_t size;//in byte
char* data;
} string_t;
/**
* @brief used for runtime data manipulation
*
*/
typedef struct {
size_t size;//in byte
uint8_t* data;
} buffer_t;
void* spmemset(void* dst, uint8_t c, size_t n);
void spmemcmp();
void spmemcpy();
void spmemmove();
void spmemchr();
void spstrcpy();
void spstrcat();
void spstrcmp();
void spstrchr();
void spstrrchr();
void spstrstr();
void spstrcspn();
void spstrspn();
void spstrpbrk();
void spstrtok();
void spstrcoll();
#define SPSTR_IMPL
#ifdef SPSTR_IMPL
#ifdef SPSTR_STATIC
#define SPSTR_DEF static
#else
#define SPSTR_DEF extern
#endif
#ifdef __cplusplus
extern "C" {
#endif
SPSTR_DEF void* spmemset(void* dst, uint8_t c, size_t n) {
uint8_t* span = 0x00;
span = (uint8_t *)dst;
if (dst == 0x00) {
return (dst);
}
for (int i = 0; i < n; i++) {
span[i] = c;
}
return (dst);
}
SPSTR_DEF void spmemcmp() {
}
SPSTR_DEF void spmemcpy() {
}
SPSTR_DEF void spmemmove() {
}
SPSTR_DEF void spmemchr() {
}
SPSTR_DEF void spstrcpy() {
}
SPSTR_DEF void spstrcat() {
}
SPSTR_DEF void spstrcmp() {
}
SPSTR_DEF void spstrchr() {
}
SPSTR_DEF void spstrrchr() {
}
SPSTR_DEF void spstrstr() {
}
SPSTR_DEF void spstrcspn() {
}
SPSTR_DEF void spstrspn() {
}
SPSTR_DEF void spstrpbrk() {
}
SPSTR_DEF void spstrtok() {
}
SPSTR_DEF void spstrcoll() {
}
#ifdef __cplusplus
}
#endif
#endif
#endif