forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			424 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			424 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								package eval.luv;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import eval.integers.Int64;
							 | 
						||
| 
								 | 
							
								import eval.integers.UInt64;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@:forward
							 | 
						||
| 
								 | 
							
								abstract FileRequest(Request) to Request {}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum abstract FileOpenFlag(Int) {
							 | 
						||
| 
								 | 
							
									var RDONLY = 0;
							 | 
						||
| 
								 | 
							
									var WRONLY = 1;
							 | 
						||
| 
								 | 
							
									var RDWR = 2;
							 | 
						||
| 
								 | 
							
									var CREAT = 3;
							 | 
						||
| 
								 | 
							
									var EXCL = 4;
							 | 
						||
| 
								 | 
							
									var EXLOCK = 5;
							 | 
						||
| 
								 | 
							
									var NOCTTY = 6;
							 | 
						||
| 
								 | 
							
									var NOFOLLOW = 7;
							 | 
						||
| 
								 | 
							
									var TEMPORARY = 8;
							 | 
						||
| 
								 | 
							
									var TRUNC = 9;
							 | 
						||
| 
								 | 
							
									var APPEND = 10;
							 | 
						||
| 
								 | 
							
									var DIRECT = 11;
							 | 
						||
| 
								 | 
							
									var DSYNC = 12;
							 | 
						||
| 
								 | 
							
									var FILEMAP = 13;
							 | 
						||
| 
								 | 
							
									var NOATIME = 14;
							 | 
						||
| 
								 | 
							
									var NONBLOCK = 15;
							 | 
						||
| 
								 | 
							
									var RANDOM = 16;
							 | 
						||
| 
								 | 
							
									var SEQUENTIAL = 17;
							 | 
						||
| 
								 | 
							
									var SHORT_LIVED = 18;
							 | 
						||
| 
								 | 
							
									var SYMLINK = 19;
							 | 
						||
| 
								 | 
							
									var SYNC = 20;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
									Permission bits.
							 | 
						||
| 
								 | 
							
									@see https://aantron.github.io/luv/luv/Luv/File/Mode
							 | 
						||
| 
								 | 
							
								**/
							 | 
						||
| 
								 | 
							
								enum FileMode {
							 | 
						||
| 
								 | 
							
									IRWXU;
							 | 
						||
| 
								 | 
							
									IRUSR;
							 | 
						||
| 
								 | 
							
									IWUSR;
							 | 
						||
| 
								 | 
							
									IXUSR;
							 | 
						||
| 
								 | 
							
									IRWXG;
							 | 
						||
| 
								 | 
							
									IRGRP;
							 | 
						||
| 
								 | 
							
									IWGRP;
							 | 
						||
| 
								 | 
							
									IXGRP;
							 | 
						||
| 
								 | 
							
									IRWXO;
							 | 
						||
| 
								 | 
							
									IROTH;
							 | 
						||
| 
								 | 
							
									IWOTH;
							 | 
						||
| 
								 | 
							
									IXOTH;
							 | 
						||
| 
								 | 
							
									ISUID;
							 | 
						||
| 
								 | 
							
									ISGID;
							 | 
						||
| 
								 | 
							
									ISVTX;
							 | 
						||
| 
								 | 
							
									IFMT;
							 | 
						||
| 
								 | 
							
									IFREG;
							 | 
						||
| 
								 | 
							
									IFDIR;
							 | 
						||
| 
								 | 
							
									IFBLK;
							 | 
						||
| 
								 | 
							
									IFCHR;
							 | 
						||
| 
								 | 
							
									IFLNK;
							 | 
						||
| 
								 | 
							
									IFIFO;
							 | 
						||
| 
								 | 
							
									NUMERIC(mode:Int);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
									Abstract type for a bit field of permissions bits, i.e., an `int` in which
							 | 
						||
| 
								 | 
							
									multiple bits may be set. These bit fields are returned by operations such
							 | 
						||
| 
								 | 
							
									as `eval.luv.File.stat`
							 | 
						||
| 
								 | 
							
								**/
							 | 
						||
| 
								 | 
							
								@:coreType abstract FileModeNumeric {}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef FileStatTimeSpec = {
							 | 
						||
| 
								 | 
							
									var sec:Int64;
							 | 
						||
| 
								 | 
							
									var nsec:Int64;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef FileStat = {
							 | 
						||
| 
								 | 
							
									var dev:UInt64;
							 | 
						||
| 
								 | 
							
									var mode:FileModeNumeric;
							 | 
						||
| 
								 | 
							
									var nlink:UInt64;
							 | 
						||
| 
								 | 
							
									var uid:UInt64;
							 | 
						||
| 
								 | 
							
									var gid:UInt64;
							 | 
						||
| 
								 | 
							
									var rdev:UInt64;
							 | 
						||
| 
								 | 
							
									var ino:UInt64;
							 | 
						||
| 
								 | 
							
									var size:UInt64;
							 | 
						||
| 
								 | 
							
									var blksize:UInt64;
							 | 
						||
| 
								 | 
							
									var blocks:UInt64;
							 | 
						||
| 
								 | 
							
									var flags:UInt64;
							 | 
						||
| 
								 | 
							
									var gen:UInt64;
							 | 
						||
| 
								 | 
							
									var atim:FileStatTimeSpec;
							 | 
						||
| 
								 | 
							
									var mtim:FileStatTimeSpec;
							 | 
						||
| 
								 | 
							
									var ctim:FileStatTimeSpec;
							 | 
						||
| 
								 | 
							
									var birthtim:FileStatTimeSpec;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef FileStatFs = {
							 | 
						||
| 
								 | 
							
									var type:UInt64;
							 | 
						||
| 
								 | 
							
									var bsize:UInt64;
							 | 
						||
| 
								 | 
							
									var blocks:UInt64;
							 | 
						||
| 
								 | 
							
									var bfree:UInt64;
							 | 
						||
| 
								 | 
							
									var bavail:UInt64;
							 | 
						||
| 
								 | 
							
									var files:UInt64;
							 | 
						||
| 
								 | 
							
									var ffree:UInt64;
							 | 
						||
| 
								 | 
							
									var fspare:Array<UInt64>;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum abstract FileCopyFlag(Int) {
							 | 
						||
| 
								 | 
							
									var COPYFILE_EXCL = 0;
							 | 
						||
| 
								 | 
							
									var COPYFILE_FICLONE = 1;
							 | 
						||
| 
								 | 
							
									var COPYFILE_FICLONE_FORCE = 2;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum abstract FileAccessFlag(Int) {
							 | 
						||
| 
								 | 
							
									var F_OK = 0;
							 | 
						||
| 
								 | 
							
									var R_OK = 1;
							 | 
						||
| 
								 | 
							
									var W_OK = 2;
							 | 
						||
| 
								 | 
							
									var X_OK = 3;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum abstract FileSymlinkFlag(Int) {
							 | 
						||
| 
								 | 
							
									var SYMLINK_DIR = 0;
							 | 
						||
| 
								 | 
							
									var SYMLINK_JUNCTION = 1;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
									Files.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@see https://aantron.github.io/luv/luv/Luv/File
							 | 
						||
| 
								 | 
							
								**/
							 | 
						||
| 
								 | 
							
								@:using(eval.luv.Handle)
							 | 
						||
| 
								 | 
							
								@:coreType abstract File to Handle {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									extern static public final stdin:File;
							 | 
						||
| 
								 | 
							
									extern static public final stdout:File;
							 | 
						||
| 
								 | 
							
									extern static public final stderr:File;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									static public function createRequest():FileRequest;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Checks whether all the bits in `mask` are set in `bits`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										For example, if `bits` is equal to octal 0o644, then
							 | 
						||
| 
								 | 
							
										`eval.luv.File.testMode [IRUSR] bits` evaluates to `true`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function testMode(mask:Array<FileMode>, bits:FileModeNumeric):Bool;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Opens the file at the given path.
							 | 
						||
| 
								 | 
							
										The default value of the `mode` argument is equal to octal `0o644`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function open(loop:Loop, path:NativeString, flags:Array<FileOpenFlag>, ?mode:Array<FileMode>, ?request:FileRequest, callback:(result:Result<File>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Closes the file.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public function close(loop:Loop, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Reads from the file.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										The incoming data is written consecutively to into the given buffers.
							 | 
						||
| 
								 | 
							
										The number of bytes that the operation tries to read is the total length
							 | 
						||
| 
								 | 
							
										of the buffers.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										End of file is indicated by `Result.Ok(0)`. Note that this is different
							 | 
						||
| 
								 | 
							
										from `eval.luv.Stream.readStart`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public function read(loop:Loop, fileOffset:Int64, buffers:Array<Buffer>, ?request:FileRequest, callback:(result:Result<UInt64>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Writes to the file.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public function write(loop:Loop, fileOffset:Int64, buffers:Array<Buffer>, ?request:FileRequest, callback:(result:Result<UInt64>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Deletes the file at the given path.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function unlink(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Moves the file at the given path to the path given by `toPath`
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function rename(loop:Loop, path:NativeString, toPath:NativeString, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Creates a temporary file with name based on the given pattern.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function mkstemp(loop:Loop, pattern:NativeString, ?request:FileRequest, callback:(result:Result<{name:NativeString,file:File}>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Creates a temporary directory with name based on the given pattern.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function mkdtemp(loop:Loop, pattern:NativeString, ?request:FileRequest, callback:(result:Result<NativeString>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Creates a directory.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function mkdir(loop:Loop, path:NativeString, ?mode:Array<FileMode>, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Deletes a directory.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function rmdir(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Retrieves status information for the file at the given path.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function stat(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<FileStat>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Like `eval.luv.File.stat`, but does not dereference symlinks.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function lstat(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<FileStat>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Retrieves status information for this file.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public function fstat(loop:Loop, ?request:FileRequest, callback:(result:Result<FileStat>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Retrieves status information for the filesystem containing the given path.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function statFs(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<FileStatFs>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Flushes file changes to storage.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public function fsync(loop:Loop, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Like `eval.luv.File.fsync`, but may omit some metadata.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public function fdataSync(loop:Loop, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Truncates the given file to the given length.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public function ftruncate(loop:Loop, length:Int64, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Copies the file at the given path to the path given by `toPath`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function copyFile(loop:Loop, path:NativeString, toPath:NativeString, ?flags:Array<FileCopyFlag>, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Transfers data between file descriptors.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public function sendFile(loop:Loop, toFile:File, offset:Int64, length:UInt64, ?request:FileRequest, callback:(result:Result<UInt64>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Checks whether the calling process can access the file at the given path.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function access(loop:Loop, path:NativeString, flags:Array<FileAccessFlag>, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Changes permissions of the file at the given path.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function chmod(loop:Loop, path:NativeString, mode:Array<FileMode>, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Changes permissions of the file.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public function fchmod(loop:Loop, mode:Array<FileMode>, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Sets timestamps of the file at the given path.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function utime(loop:Loop, path:NativeString, atime:Float, mtime:Float, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Sets timestamps of the file.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public function futime(loop:Loop, atime:Float, mtime:Float, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Sets timestamps of the file at the given path without dereferencing symlinks.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function lutime(loop:Loop, path:NativeString, atime:Float, mtime:Float, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Hardlinks a file at the location given by `link`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function link(loop:Loop, path:NativeString, link:NativeString, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Symlinks a file at the location given by `link`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function symlink(loop:Loop, path:NativeString, link:NativeString, ?flags:Array<FileSymlinkFlag>, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Reads the target path of a symlink.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function readLink(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<NativeString>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Resolves a real absolute path to the given file.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function realPath(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<NativeString>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Changes owneship of the file at the given path.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function chown(loop:Loop, path:NativeString, uid:Int, gid:Int, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Changes owneship of the file at the given path. without dereferencing symlinks.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static public function lchown(loop:Loop, path:NativeString, uid:Int, gid:Int, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Changes owneship of the file.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public function fchown(loop:Loop, uid:Int, gid:Int, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Returns the integer representation of `eval.luv.File`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										`eval.luv.File` is defined as an integer file descriptor by libuv on all
							 | 
						||
| 
								 | 
							
										platforms at the moment. This is a convenience function for interoperability
							 | 
						||
| 
								 | 
							
										with `eval.luv.Process`, the API of which assumes that files are represented
							 | 
						||
| 
								 | 
							
										by integers.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public function toInt():Int;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
									Synchronous version of `eval.luv.File` API
							 | 
						||
| 
								 | 
							
								**/
							 | 
						||
| 
								 | 
							
								extern class FileSync {
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.open)
							 | 
						||
| 
								 | 
							
									static function open(path:NativeString, flags:Array<FileOpenFlag>, ?mode:Array<FileMode>):Result<File>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.close)
							 | 
						||
| 
								 | 
							
									static function close(file:File):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.read)
							 | 
						||
| 
								 | 
							
									static function read(file:File, fileOffset:Int64, buffers:Array<Buffer>):Result<UInt64>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.write)
							 | 
						||
| 
								 | 
							
									static function write(file:File, fileOffset:Int64, buffers:Array<Buffer>):Result<UInt64>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.unlink)
							 | 
						||
| 
								 | 
							
									static function unlink(path:NativeString):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.rename)
							 | 
						||
| 
								 | 
							
									static function rename(path:NativeString, toPath:NativeString):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.mkstemp)
							 | 
						||
| 
								 | 
							
									static function mkstemp(pattern:NativeString):Result<{name:NativeString,file:File}>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.mkdtemp)
							 | 
						||
| 
								 | 
							
									static function mkdtemp(pattern:NativeString):Result<NativeString>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.mkdir)
							 | 
						||
| 
								 | 
							
									static function mkdir(path:NativeString, ?mode:Array<FileMode>):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.rmdir)
							 | 
						||
| 
								 | 
							
									static function rmdir(path:NativeString):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.stat)
							 | 
						||
| 
								 | 
							
									static function stat(path:NativeString):Result<FileStat>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.lstat)
							 | 
						||
| 
								 | 
							
									static function lstat(path:NativeString):Result<FileStat>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.fstat)
							 | 
						||
| 
								 | 
							
									static function fstat(file:File):Result<FileStat>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.statFs)
							 | 
						||
| 
								 | 
							
									static function statFs(path:NativeString):Result<FileStatFs>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.fsync)
							 | 
						||
| 
								 | 
							
									static function fsync(file:File):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.fdataSync)
							 | 
						||
| 
								 | 
							
									static function fdataSync(file:File):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.ftruncate)
							 | 
						||
| 
								 | 
							
									static function ftruncate(file:File, length:Int64):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.copyFile)
							 | 
						||
| 
								 | 
							
									static function copyFile(path:NativeString, toPath:NativeString, ?flags:Array<FileCopyFlag>):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.sendFile)
							 | 
						||
| 
								 | 
							
									static function sendFile(file:File, toFile:File, offset:Int64, length:UInt64):Result<UInt64>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.access)
							 | 
						||
| 
								 | 
							
									static function access(path:NativeString, flags:Array<FileAccessFlag>):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.chmod)
							 | 
						||
| 
								 | 
							
									static function chmod(path:NativeString, mode:Array<FileMode>):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.fchmod)
							 | 
						||
| 
								 | 
							
									static function fchmod(file:File, mode:Array<FileMode>):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.utime)
							 | 
						||
| 
								 | 
							
									static function utime(path:NativeString, atime:Float, mtime:Float):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.futime)
							 | 
						||
| 
								 | 
							
									static function futime(file:File, atime:Float, mtime:Float):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.lutime)
							 | 
						||
| 
								 | 
							
									static function lutime(path:NativeString, atime:Float, mtime:Float):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.link)
							 | 
						||
| 
								 | 
							
									static function link(path:NativeString, link:NativeString):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.symlink)
							 | 
						||
| 
								 | 
							
									static function symlink(path:NativeString, link:NativeString, ?flags:Array<FileSymlinkFlag>):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.readLink)
							 | 
						||
| 
								 | 
							
									static function readLink(path:NativeString):Result<NativeString>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.realPath)
							 | 
						||
| 
								 | 
							
									static function realPath(path:NativeString):Result<NativeString>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.chown)
							 | 
						||
| 
								 | 
							
									static function chown(path:NativeString, uid:Int, gid:Int):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.lchown)
							 | 
						||
| 
								 | 
							
									static function lchown(path:NativeString, uid:Int, gid:Int):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@:inheritDoc(eval.luv.File.fchown)
							 | 
						||
| 
								 | 
							
									static function fchown(file:File, uid:Int, gid:Int):Result<Result.NoData>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |