package kernel.fs; import cc.FileSystem.FileHandle; using tink.CoreApi; abstract ReadHandle(FileHandle) from FileHandle { public inline function new(handle:FileHandle) { this = handle; } public inline function readLine(?withTrailing:Bool = false):Null{ return this.readLine(withTrailing); } public inline function readAll():Null{ return this.readAll(); } public inline function read(?count:Int = 1):Null{ return this.read(count); } public inline function close():Void{ this.close(); } } abstract WriteHandle(FileHandle) from FileHandle { public inline function new(handle:FileHandle) { this = handle; } public inline function write(data:String):Void{ this.write(data); } public inline function writeLine(data:String):Void{ this.writeLine(data); } public inline function flush():Void{ this.flush(); } public inline function close():Void{ this.close(); } } abstract ReadBinaryHandle(FileHandle) from FileHandle { public inline function new(handle:FileHandle) { this = handle; } public inline function readLine(?withTrailing:Bool = false):Null{ return this.readLine(withTrailing); } public inline function readAll():Null{ return this.readAll(); } public inline function read(count:Int):Null{ return this.read(count); } public inline function readByte():Null{ return this.read(); } public inline function seek(?whence:BinarySeekWhence = Current, ?offset:Int):Void{ this.seek(whence,offset); } public inline function close():Void{ this.close(); } } abstract WriteBinaryHandle(FileHandle) from FileHandle { public inline function new(handle:FileHandle) { this = handle; } public inline function write(data: String):Void{ this.write(data); } // TODO public inline function writeByte(data: Int):Void{ // this.write(data); } public inline function flush():Void{ this.flush(); } public inline function close():Void{ this.close(); } public inline function seek(?whence:BinarySeekWhence = Current, ?offset:Int):Void{ this.seek(whence,offset); } } enum abstract BinarySeekWhence(String) to String { var Set = "set"; // Relative to the beginning of the file. var Current = "cur"; // Relative to the current position. This is the default. var End = "end"; // Relative to the end of the file. }