From 30740ca4131d1f574718262451b4410207dc8d4e Mon Sep 17 00:00:00 2001 From: Mitya Selivanov Date: Sun, 14 Jul 2024 21:12:37 +0200 Subject: Reworking the build system --- kit/input_stream.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 kit/input_stream.h (limited to 'kit/input_stream.h') diff --git a/kit/input_stream.h b/kit/input_stream.h new file mode 100644 index 0000000..3442ee4 --- /dev/null +++ b/kit/input_stream.h @@ -0,0 +1,41 @@ +#ifndef KIT_INPUT_STREAM_H +#define KIT_INPUT_STREAM_H + +#include "allocator.h" +#include "string_ref.h" + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef i64 (*kit_is_read_fn)(void *state, kit_str_t destination); + +typedef struct { + void *state; + kit_is_read_fn read; +} kit_is_handle_t; + +kit_is_handle_t kit_is_wrap_string(kit_str_t string, + kit_allocator_t *alloc); + +kit_is_handle_t kit_is_wrap_file(FILE *f, kit_allocator_t *alloc); + +void kit_is_destroy(kit_is_handle_t in); + +#define KIT_IS_READ(in, destination) \ + (in).read((in).state, (destination)) + +#ifdef __cplusplus +} +#endif + +#define is_read_fn kit_is_read_fn +#define is_handle_t kit_is_handle_t +#define is_wrap_string kit_is_wrap_string +#define is_wrap_file kit_is_wrap_file +#define is_destroy kit_is_destroy +#define IS_READ KIT_IS_READ + +#endif -- cgit v1.2.3