Files
protohackersc/data.h
2025-07-29 20:26:05 +01:00

37 lines
1.2 KiB
C

#pragma once
#include <stdint.h>
#include <stdio.h>
#include <winsock2.h>
typedef struct CharArray {
size_t size;
size_t capacity;
char *data;
} char_array_t;
typedef struct ByteArray {
size_t size;
size_t capacity;
uint8_t *data;
} byte_array_t;
char_array_t *char_array_create(int size);
void char_array_destroy(char_array_t *array);
void char_array_append(char_array_t *array, char *value, size_t length);
void char_array_print(const char_array_t *array);
void char_array_print_hex(const char_array_t *array);
void char_array_wipe(char_array_t *array);
bool char_array_has_char(char_array_t *array, char c);
char *char_array_get_until_char(char_array_t *array, char c);
char *char_array_get_bytes(char_array_t *array, size_t length);
void char_array_shift_bytes(char_array_t *array, size_t length);
byte_array_t *byte_array_create(int size);
void byte_array_destroy(byte_array_t *array);
void byte_array_append(byte_array_t *array, uint8_t *value, size_t length);
void byte_array_print(const byte_array_t *array);
uint8_t *byte_array_get_until_byte(byte_array_t *array, uint8_t b);
uint8_t *byte_array_get_bytes(byte_array_t *array, size_t length);
void byte_array_shift_bytes(byte_array_t *array, size_t length);
SOCKET get_listen_socket();