#ifndef AMALGAM_FILE_H #define AMALGAM_FILE_H #include "misc.h" #include "types.h" /* Return bool_true if you want to continue scanning, otherwise return bool_false */ typedef bool (*scan_dir_callback_func)(const char *filepath, int filepath_length, void *userdata); typedef struct { const char *file_data; usize file_size; int fd; } MappedFile; typedef enum { MAPPED_FILE_READ, MAPPED_FILE_WRITE, MAPPED_FILE_READ_WRITE } MappedFileMode; /* Hidden files (files starting with a dot) are skipped */ CHECK_RESULT int scan_dir_recursive(const char *dir_path, scan_dir_callback_func callback_func, void *userdata); CHECK_RESULT int mapped_file_init(MappedFile *self, const char *filepath, MappedFileMode file_mode); CHECK_RESULT int mapped_file_deinit(MappedFile *self); CHECK_RESULT int read_whole_file(const char *filepath, char **data, usize *size); #endif