31 log(FATAL, "%s:%s:%d %s\n", __FILE__, __func__, __LINE__, strerror(errno)); \
32 exit (EXIT_FAILURE); \
39#define exists(a) do { \
41 log(FATAL, "%s:%s:%d Null pointer encountered, %s\n", __FILE__, __func__, __LINE__, strerror(errno)); \
42 exit (EXIT_FAILURE); \
48 log(ERROR, "%s:%s:%d Not yet implemented\n", __FILE__, __func__, __LINE__); \
53#define expect(cond, ...) do { \
55 fprintf(stderr, __VA_ARGS__); \
64#define CHUNK_SIZE 0x400
73typedef const char*
Str;
318size_t min(
size_t l,
size_t r);
const char * Str
String type.
Definition lib.h:73
uint16_t uint16_t_deserialize(Buffer buf)
Deserialize a uint16_t from a Buffer.
Definition lib.c:271
LazyBuffer next_chunk(LazyBuffer b)
Reads the next chunk of the file, if it can.
Definition lib.c:328
Buffer uint32_t_serialize(uint32_t n)
Serialize a uint32_t to a Buffer.
Definition lib.c:284
Buffer atob(Str str)
Converts a CString to a Byte Buffer.
Definition lib.c:138
bool mkdir_p(SafeStr fpath, mode_t mode)
Recursively create directories.
Definition lib.c:32
Buffer validate_str(Buffer str, size_t max_len)
Validates that a string received through a Socket is correct.
Definition lib.c:108
Byte * copy(Byte *src, size_t nbytes)
Byte by Byte copy.
Definition lib.c:86
bool Str_eq(Str lhs, Str rhs)
Compares two strings.
Definition lib.c:209
Buffer Buffer_serialize(Buffer buf)
Serialize a Buffer to a Buffer.
Definition lib.c:213
size_t size_t_deserialize(Buffer buf)
Deserializes a size_t length.
Definition lib.c:175
Buffer concat(Buffer fst, Buffer snd)
Concatenate two Buffer's.
Definition lib.c:188
LazyBuffer open(Str fpath)
Open a LazyBuffer.
Definition lib.c:313
Buffer Buffer_read(FILE *f)
Reads data from a file.
Definition lib.c:65
uint8_t Byte
Simple Byte type. Guaranteed to be exactly 8 bits.
Definition lib.h:70
LazyBuffer
Definition lib.h:106
size_t safe_strlen(Str str, size_t max_len)
Does an strlen using a max size.
Definition lib.c:132
void Buffer_write(Buffer buf, FILE *f)
Writes data from a Buffer to a file.
Definition lib.c:60
Buffer bufcpy(Buffer in)
Make a copy of a Buffer.
Definition lib.c:96
Buffer SafeStr_serialize(SafeStr str)
Serializes a string.
Definition lib.c:145
SafeStr atoss(Str str)
Convert a string literal to a safe string WARNING: DO NOT USE THIS TO CONVERT THINGS THAT ARE NOT STR...
Definition lib.c:301
SafeStr SafeStr_deserialize(Buffer buf)
Deserializes a string from a Buffer.
Definition lib.c:149
Buffer uint16_t_serialize(uint16_t n)
Serialize a uint16_t to a Buffer.
Definition lib.c:267
void Buffer_deinit(Buffer kod)
Deinitializes a Buffer.
Definition lib.c:56
Buffer Buffer_deserialize(Buffer buf)
Deserialize a Buffer from a Buffer.
Definition lib.c:219
uint8_t uint8_t_deserialize(Buffer buf)
Deserialize a uint8_t from a Buffer.
Definition lib.c:253
Buffer size_t_serialize(size_t a)
Serializes a size_t length.
Definition lib.c:164
Buffer to_buffer(const void *thing, size_t nbytes)
Convert a thing to a buffer.
Definition lib.c:237
size_t min(size_t l, size_t r)
Simply returns the minimum of the two.
Definition lib.c:308
Buffer ListBuffer_serialize(ListBuffer list)
Serialize a List of Buffer's to a Buffer.
uint32_t uint32_t_deserialize(Buffer buf)
Deserialize a uint32_t from a Buffer.
Definition lib.c:288
#define CHUNK_SIZE
un solo kilobyte
Definition lib.h:64
Buffer uint8_t_serialize(uint8_t n)
Serialize a uint8_t to a Buffer.
Definition lib.c:249
ListBuffer ListBuffer_deserialize(Buffer buf)
Deserialize a ListBuffer from a Buffer.
Definition lib.c:18
#define DefList(type)
Definition list.h:93
Byte buffer.
Definition lib.h:92
size_t len
length of buffer
Definition lib.h:93
Byte * buf
underlying buffer
Definition lib.h:94
Safe String type.
Definition lib.h:76
Str str
the underlying buffer for the string
Definition lib.h:77
size_t len
the string's actual length
Definition lib.h:78