80#define VL_FS_ITER_INVALID NULL
89 struct vl_filesys_*
sys;
126typedef struct vl_filesys_
An arena allocator for efficient memory management.
Definition vl_arena.h:84
VL_API void vlFSPathNormalize(vl_filesys_path *path)
Normalizes a filesystem path by resolving relative components.
Definition vl_filesys.c:389
VL_API vl_filesys_result vlFSPathRemove(const vl_filesys_path *path)
Removes a file or directory at the specified path.
Definition vl_filesys_posix.c:381
vl_bool_t isDirectory
Definition vl_filesys.h:106
struct vl_filesys_ * sys
Definition vl_filesys.h:89
VL_API vl_filesys_iter vlFSIterNew(vl_filesys *sys)
Creates a new directory iterator.
Definition vl_filesys_posix.c:425
struct vl_filesys_ * sys
Definition vl_filesys.h:103
vl_arena_ptr pathStringPtr
Definition vl_filesys.h:92
VL_API vl_bool_t vlFSPathIsAbsolute(const vl_filesys_path *path)
Checks if a filesystem path is absolute.
Definition vl_filesys_posix.c:212
VL_API void vlFSPathAbsolute(vl_filesys_path *path)
Converts a relative path to an absolute path.
Definition vl_filesys_posix.c:143
vl_ularge_t accessTime
Definition vl_filesys.h:111
VL_API vl_bool_t vlFSPathExists(const vl_filesys_path *path)
Checks if a file or directory exists at the specified path.
Definition vl_filesys_posix.c:413
vl_arena memory
Definition vl_filesys.h:128
vl_ularge_t createTime
Definition vl_filesys.h:109
VL_API vl_filesys_result vlFSIterDir(vl_filesys_iter *iter, const vl_filesys_path *path)
Initializes an iterator for a directory.
Definition vl_filesys_posix.c:542
VL_API void vlFSDelete(vl_filesys *sys)
Deletes a filesystem context created with vlFSNew.
Definition vl_filesys.c:152
vl_arena_ptr extension
Definition vl_filesys.h:116
vl_memsize_t fileSize
Definition vl_filesys.h:108
vl_pool pathPool
Definition vl_filesys.h:130
vl_pool iterPool
Definition vl_filesys.h:131
vl_filesys_result
Result codes for filesystem operations.
Definition vl_filesys.h:67
@ VL_FS_SUCCESS
Definition vl_filesys.h:68
@ VL_FS_ERROR_NOT_FOUND
Definition vl_filesys.h:71
@ VL_FS_ERROR_PATH_INVALID
Definition vl_filesys.h:70
@ VL_FS_ERROR_IO
Definition vl_filesys.h:72
@ VL_FS_ERROR_ACCESS_DENIED
Definition vl_filesys.h:69
vl_arena_ptr baseName
Definition vl_filesys.h:115
vl_bool_t isReadOnly
Definition vl_filesys.h:107
VL_API vl_bool_t vlFSIterNext(vl_filesys_iter *iter)
Advances the iterator to the next entry.
Definition vl_filesys_posix.c:578
VL_API void vlFSPathSet(vl_filesys_path *path, const char *pathStr)
Sets the path string for a filesystem path object.
Definition vl_filesys.c:280
VL_API vl_filesys * vlFSNew(void)
Creates a new filesystem context.
Definition vl_filesys.c:145
VL_API void vlFSFree(vl_filesys *sys)
Frees resources associated with a filesystem context.
Definition vl_filesys.c:137
vl_arena_ptr fullName
Definition vl_filesys.h:117
VL_API vl_bool_t vlFSPathEquals(const vl_filesys_path *pathA, const vl_filesys_path *pathB)
Compares two filesystem paths for equality.
Definition vl_filesys.c:262
VL_API vl_filesys_result vlFSStatPath(const vl_filesys_path *path, vl_filesys_stat *result)
Gets file status information for a given path.
Definition vl_filesys_posix.c:58
VL_API void vlFSInit(vl_filesys *sys)
Initializes a filesystem context.
Definition vl_filesys.c:129
VL_API vl_filesys_path * vlFSPathNew(vl_filesys *sys, const char *path)
Creates a new filesystem path object.
Definition vl_filesys.c:197
vl_pool_idx pathIndex
Definition vl_filesys.h:91
VL_API vl_filesys_result vlFSIterDirRecursive(vl_filesys_iter *iterPtr, const vl_filesys_path *path)
Initializes an iterator for recursive directory traversal.
Definition vl_filesys_posix.c:560
vl_pool statPool
Definition vl_filesys.h:129
VL_API vl_filesys_result vlFSPathMkDir(const vl_filesys_path *path)
Creates a directory at the specified path.
Definition vl_filesys_posix.c:327
VL_API vl_filesys_path * vlFSPathClone(const vl_filesys_path *src, vl_filesys_path *dest)
Clones a filesystem path.
Definition vl_filesys.c:231
VL_API const vl_transient * vlFSPathString(const vl_filesys_path *path)
Gets the string representation of a filesystem path.
Definition vl_filesys.c:304
VL_API void vlFSPathParent(const vl_filesys_path *path, vl_filesys_path *parentOut)
Gets the parent directory of a filesystem path.
Definition vl_filesys.c:508
VL_API void vlFSPathDelete(vl_filesys_path *path)
Deletes a filesystem path object.
Definition vl_filesys.c:216
VL_API void vlFSIterDelete(vl_filesys_iter iter)
Deletes a directory iterator.
Definition vl_filesys_posix.c:442
vl_pool_idx statIndex
Definition vl_filesys.h:105
VL_API vl_filesys_result vlFSStatIter(vl_filesys_iter iter, vl_filesys_stat *result)
Gets file status information for the current iterator position.
Definition vl_filesys_posix.c:125
vl_ularge_t modifyTime
Definition vl_filesys.h:110
VL_API vl_filesys_stat * vlFSStatNew(vl_filesys *sys)
Creates a new file stat object.
Definition vl_filesys.c:158
VL_API void vlFSPathJoin(const vl_filesys_path *base, vl_filesys_path *dest, const char *component)
Joins a path component to a base path.
Definition vl_filesys.c:313
vl_filesys_path filePath
Definition vl_filesys.h:112
VL_API void vlFSStatDelete(vl_filesys_stat *stat)
Deletes a file stat object.
Definition vl_filesys.c:177
Filesystem context structure.
Definition vl_filesys.h:127
Represents a filesystem path within the filesystem context.
Definition vl_filesys.h:88
File status information structure.
Definition vl_filesys.h:102
Opaque handle for filesystem directory iteration.
Definition vl_filesys_posix.c:7
VL_MEMORY_T vl_transient
Definition vl_memory.h:118
VL_BOOL_T vl_bool_t
Definition vl_numtypes.h:191
VL_ULARGE_T vl_ularge_t
Largest available unsigned integer type.
Definition vl_numtypes.h:136
VL_POOL_INDEX_T vl_pool_idx
Definition vl_pool.h:53
Fixed-size memory pool with stable indices and geometric growth.
Definition vl_pool.h:141