summaryrefslogtreecommitdiff
path: root/archive/src/core/vfs.h
diff options
context:
space:
mode:
authoromniscient <17525998+omnisci3nce@users.noreply.github.com>2024-10-05 12:48:05 +1000
committeromniscient <17525998+omnisci3nce@users.noreply.github.com>2024-10-05 12:48:05 +1000
commitdfb6adbcbcc7d50b770b6d5ea82efdd8f8c32e25 (patch)
treea470b91a90716d7ea46fde53ed395449c24583a2 /archive/src/core/vfs.h
parent54354e32c6498cc7f8839ab4deb1208d37216cc5 (diff)
delete documentation workflow
Diffstat (limited to 'archive/src/core/vfs.h')
-rw-r--r--archive/src/core/vfs.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/archive/src/core/vfs.h b/archive/src/core/vfs.h
new file mode 100644
index 0000000..41033f5
--- /dev/null
+++ b/archive/src/core/vfs.h
@@ -0,0 +1,38 @@
+#pragma once
+#include "defines.h"
+
+#define MAX_VIRTUAL_FILENAME_LEN 256
+
+typedef struct VFS_Pack VFS_Pack;
+
+const char VFS_OpenErr_DoesNotExist[] = "PATH DOES NOT EXIST";
+
+typedef struct VFS_File {
+ size_t n_bytes;
+ void* data;
+} VFS_File;
+
+// virtual file open result
+typedef struct VFS_FileRes {
+ bool success;
+ const char* error_reason;
+ VFS_File file;
+} VFS_FileRes;
+
+VFS_Pack* VFS_Open(const char* filepath);
+
+bool VFS_Close(VFS_Pack*);
+
+VFS_FileRes VFS_VirtualRead(VFS_Pack* vfs, const char* unique_path);
+
+typedef struct VFS_PackBuilder {
+ const char* pack_filename;
+} VFS_PackBuilder;
+
+typedef struct VFS_FileEntry {
+ char filename[MAX_VIRTUAL_FILENAME_LEN];
+ size_t offset;
+ size_t size;
+} VFS_FileEntry;
+
+VFS_PackBuilder VFS_Pack_Create(); \ No newline at end of file