forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			73 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			73 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package eval.luv; | ||
|  | 
 | ||
|  | import eval.luv.File; | ||
|  | 
 | ||
|  | enum abstract DirentKind(Int) { | ||
|  | 	var UNKNOWN = 0; | ||
|  | 	var FILE = 1; | ||
|  | 	var DIR = 2; | ||
|  | 	var LINK = 3; | ||
|  | 	var FIFO = 4; | ||
|  | 	var SOCKET = 5; | ||
|  | 	var CHAR = 6; | ||
|  | 	var BLOCK = 7; | ||
|  | } | ||
|  | 
 | ||
|  | typedef Dirent = { | ||
|  | 	var kind:DirentKind; | ||
|  | 	var name:NativeString; | ||
|  | } | ||
|  | 
 | ||
|  | typedef DirectoryScan = { | ||
|  | 	/** | ||
|  | 		Retrieves the next directory entry. | ||
|  | 	**/ | ||
|  | 	function next():Null<Dirent>; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Cleans up after a directory scan. | ||
|  | 	**/ | ||
|  | 	function end():Void; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  | 	@see https://aantron.github.io/luv/luv/Luv/File#module-Dir | ||
|  | **/ | ||
|  | @:coreType abstract Dir { | ||
|  | 	/** | ||
|  | 		Opens the directory at the given path for listing. | ||
|  | 	**/ | ||
|  | 	static public function open(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<Dir>)->Void):Void; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Closes the directory. | ||
|  | 	**/ | ||
|  | 	public function close(loop:Loop, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Retrieves a directory entry. | ||
|  | 	**/ | ||
|  | 	public function read(loop:Loop, ?numberOfEntries:Int, ?request:FileRequest, callback:(result:Result<Array<Dirent>>)->Void):Void; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Begins directory listing. | ||
|  | 	**/ | ||
|  | 	static public function scan(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<DirectoryScan>)->Void):Void; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  | 	Synchronous version of `eval.luv.Dir` API | ||
|  | **/ | ||
|  | extern class DirSync { | ||
|  | 	@:inheritDoc(eval.luv.Dir.open) | ||
|  | 	static public function open(loop:Loop, path:NativeString):Result<Dir>; | ||
|  | 
 | ||
|  | 	@:inheritDoc(eval.luv.Dir.close) | ||
|  | 	static public function close(dir:Dir, loop:Loop):Result<Result.NoData>; | ||
|  | 
 | ||
|  | 	@:inheritDoc(eval.luv.Dir.read) | ||
|  | 	static public function read(dir:Dir, loop:Loop, ?numberOfEntries:Int):Result<Array<Dirent>>; | ||
|  | 
 | ||
|  | 	@:inheritDoc(eval.luv.Dir.scan) | ||
|  | 	static public function scan(loop:Loop, path:NativeString):Result<DirectoryScan>; | ||
|  | } |