flix

0.69.3

Fs.FileTime

eff FileTimeSource

An effect used to read file timestamps (access, creation, modification).

Operations

def accessTime(f: String): Result[IoError, Int64] \ FileTime Source

Returns the last access time of the given file f in milliseconds since the epoch.

def creationTime(f: String): Result[IoError, Int64] \ FileTime Source

Returns the creation time of the given file f in milliseconds since the epoch.

def modificationTime(f: String): Result[IoError, Int64] \ FileTime Source

Returns the last-modified timestamp of the given file f in milliseconds since the epoch.

Definitions

def handle(f: a -> b \ ef): a -> b \ (ef - FileTime) + IO Source

Handles the FileTime effect of the given function f.

In other words, re-interprets the FileTime effect using the IO effect.

def runWithFileStat(f: Unit -> a \ ef): a \ (ef - FileTime) + FileStat Source

Handles the FileTime effect of the given function f using the FileStat effect.

@DefaultHandler
def runWithIO(f: Unit -> a \ ef): a \ (ef - FileTime) + IO Source

Runs the FileTime effect of the given function f.

In other words, re-interprets the FileTime effect using the IO effect.

def withAllowGlob(patterns: Nel[String], f: Unit -> a \ ef): a \ (ef - FileTime) + FileTime Source

Middleware that intercepts the FileTime effect, validating that all file paths match at least one of the given glob patterns. Rejects paths that do not match with a PermissionDenied error.

def withAllowList(allowedDirs: Nel[String], f: Unit -> a \ ef): a \ (ef - FileTime) + FileTime Source

Middleware that intercepts the FileTime effect, validating that all file paths resolve within one of the given allowedDirs. Rejects paths outside the allow list with a PermissionDenied error.

def withBaseDir(baseDir: String, f: Unit -> a \ ef): a \ (ef - FileTime) + FileTime Source

Middleware that intercepts the FileTime effect, resolving all file paths relative to the given baseDir using Java's Path.resolve semantics.

Absolute paths are passed through unchanged.

def withChroot(chrootDir: String, f: Unit -> a \ ef): a \ (ef - FileTime) + FileTime Source

Middleware that intercepts the FileTime effect, validating that all file paths resolve within the given chrootDir. Rejects paths that escape the chroot with a PermissionDenied error.

def withDenyGlob(patterns: Nel[String], f: Unit -> a \ ef): a \ (ef - FileTime) + FileTime Source

Middleware that intercepts the FileTime effect, validating that all file paths do not match any of the given glob patterns. Rejects paths that match a denied pattern with a PermissionDenied error.

def withDenyList(deniedDirs: Nel[String], f: Unit -> a \ ef): a \ (ef - FileTime) + FileTime Source

Middleware that intercepts the FileTime effect, validating that all file paths do not resolve within any of the given deniedDirs. Rejects paths inside a denied directory with a PermissionDenied error.

def withLogging(f: Unit -> a \ ef): a \ (ef - FileTime) + FileTime + Logger Source

Middleware that intercepts the FileTime effect, logging each operation and its result via the Logger effect.

Successful operations are logged at Debug level; errors at Warn.