// calogFs.h -- calog filesystem library. // // Bridges the POSIX filesystem into calog's value model so any engine can read, write, and // inspect files without an engine-specific I/O library: // fsRead(path) -> string (the whole file, binary-safe) // fsWrite(path, data) -> nil (create/truncate, honoring data's byte length) // fsAppend(path, data) -> nil (create if absent, append at the end) // fsExists(path) -> bool // fsRemove(path) -> nil (unlink a file) // fsMkdir(path) -> nil (single level, mode 0777 & umask; an existing dir is OK) // fsList(path) -> list (entry name strings, excluding "." and "..") // fsStat(path) -> map {size, isDir, isFile, mtime} or nil if the path is absent // The natives are INLINE (each is a pure function of its arguments over the OS filesystem, no // shared state), so there is nothing to shut down. A failed operation surfaces as a catchable // script error carrying strerror(errno). #ifndef CALOG_FS_H #define CALOG_FS_H #include "calog.h" // Register the filesystem natives on a runtime. Stateless: safe to call on any number of // runtimes, and there is no matching shutdown. int32_t calogFsRegister(CalogT *calog); #endif