diff options
Diffstat (limited to 'lib/stream.h')
-rw-r--r-- | lib/stream.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/stream.h b/lib/stream.h new file mode 100644 index 0000000..d9a05ce --- /dev/null +++ b/lib/stream.h @@ -0,0 +1,27 @@ +#pragma once + +#include <stdint.h> +#include <stdio.h> +#include <stdbool.h> + +typedef struct { + FILE *__file; + bool __alloc; +} stream_t; + +stream_t stream_open(const char *path, const char* mode); +void stream_close(stream_t *stream); + +bool stream_read(const stream_t *stream, void *res, size_t amount); +bool stream_read_i8(const stream_t *stream, int8_t *res); +bool stream_read_i16(const stream_t *stream, int16_t *res); +bool stream_read_i32(const stream_t *stream, int32_t *res); +bool stream_read_i64(const stream_t *stream, int64_t *res); +bool stream_read_u16(const stream_t *stream, uint16_t *res); + +bool stream_write(const stream_t *stream, const void *buf, size_t amount); +bool stream_write_i8(const stream_t *stream, int8_t b); +bool stream_write_i16(const stream_t *stream, int16_t s); +bool stream_write_i32(const stream_t *stream, int32_t i); +bool stream_write_i64(const stream_t *stream, int64_t l); +bool stream_write_u16(const stream_t *stream, uint16_t s); |