| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- package cpp.marshal;
- import cpp.Char;
- import cpp.Char16;
- import cpp.Float32;
- import cpp.Float64;
- import cpp.UInt8;
- import cpp.UInt16;
- import cpp.UInt32;
- import cpp.UInt64;
- import cpp.Int8;
- import cpp.Int16;
- import cpp.Int32;
- import cpp.Int64;
- import cpp.Pointer;
- @:semantics(value)
- @:cpp.ValueType({ namespace : [ 'cpp', 'marshal' ] })
- final extern class Marshal {
- /**
- * Returns a view to UTF8 encoded characters of the given string. The characters in the view will be null terminated.
- *
- * Depending on the internal incoding of `s` this function may allocate GC bytes.
- *
- * @param s String to return the view of.
- */
- static overload function toCharView(s:String):View<Char>;
- /**
- * Fills `buffer` with `s` encoded as UTF8 characters. The characters in the view will be null terminated.
- *
- * @param s The string to encode into the buffer.
- * @param buffer The view to write into.
- * @returns The number of characters written into `buffer`.
- *
- * @throws InvalidViewLength If `buffer` does not have enough space.
- */
- static overload function toCharView(s:String, buffer:View<Char>):Int;
- /**
- * Returns a view to UTF16 encoded characters of the given string. The characters in the view will be null terminated.
- *
- * Depending on the internal incoding of `s` this function may allocate GC bytes.
- *
- * @param s String to return the view of.
- */
- static overload function toWideCharView(s:String):View<Char16>;
- /**
- * Fills `buffer` with `s` encoded as UTF16 characters. The characters in the view will be null terminated.
- *
- * @param s The string to encode into the buffer.
- * @param buffer The view to write into.
- * @returns The number of characters written into `buffer`.
- *
- * @throws InvalidViewLength If `buffer` does not have enough space.
- */
- static overload function toWideCharView(s:String, buffer:View<Char16>):Int;
- /**
- * Allocates a string from the provided utf8 characters.
- *
- * @param buffer Buffer to characters, does not need to be null terminated.
- */
- static overload function toString(buffer:View<Char>):String;
- /**
- * Allocates a string from the provided utf16 characters.
- *
- * @param buffer Buffer to characters, does not need to be null terminated.
- */
- static overload function toString(buffer:View<Char16>):String;
- static function read<T>(view:View<UInt8>):T;
- static function readPointer<T>(view:View<UInt8>):Pointer<T>;
- static function readInt8(view:View<UInt8>):Int8;
- static function readInt16(view:View<UInt8>):Int16;
- static function readInt32(view:View<UInt8>):Int32;
- static function readInt64(view:View<UInt8>):Int64;
- static function readUInt8(view:View<UInt8>):UInt8;
- static function readUInt16(view:View<UInt8>):UInt16;
- static function readUInt32(view:View<UInt8>):UInt32;
- static function readUInt64(view:View<UInt8>):UInt64;
- static function readFloat32(view:View<UInt8>):Float32;
- static function readFloat64(view:View<UInt8>):Float64;
- static function readLittleEndianPointer<T>(view:View<UInt8>):Pointer<T>;
- static function readLittleEndianInt16(view:View<UInt8>):Int16;
- static function readLittleEndianInt32(view:View<UInt8>):Int32;
- static function readLittleEndianInt64(view:View<UInt8>):Int64;
- static function readLittleEndianUInt16(view:View<UInt8>):UInt16;
- static function readLittleEndianUInt32(view:View<UInt8>):UInt32;
- static function readLittleEndianUInt64(view:View<UInt8>):UInt64;
- static function readLittleEndianFloat32(view:View<UInt8>):Float32;
- static function readLittleEndianFloat64(view:View<UInt8>):Float64;
- static function readBigEndianPointer<T>(view:View<UInt8>):Pointer<T>;
- static function readBigEndianInt16(view:View<UInt8>):Int16;
- static function readBigEndianInt32(view:View<UInt8>):Int32;
- static function readBigEndianInt64(view:View<UInt8>):Int64;
- static function readBigEndianUInt16(view:View<UInt8>):UInt16;
- static function readBigEndianUInt32(view:View<UInt8>):UInt32;
- static function readBigEndianUInt64(view:View<UInt8>):UInt64;
- static function readBigEndianFloat32(view:View<UInt8>):Float32;
- static function readBigEndianFloat64(view:View<UInt8>):Float64;
- static function write<T>(view:View<UInt8>, value:T):Void;
- static function writePointer<T>(view:View<UInt8>, value:Pointer<T>):Void;
- static function writeInt8(view:View<UInt8>, value:Int8):Void;
- static function writeInt16(view:View<UInt8>, value:Int16):Void;
- static function writeInt32(view:View<UInt8>, value:Int32):Void;
- static function writeInt64(view:View<UInt8>, value:Int64):Void;
- static function writeUInt8(view:View<UInt8>, value:UInt8):Void;
- static function writeUInt16(view:View<UInt8>, value:UInt16):Void;
- static function writeUInt32(view:View<UInt8>, value:UInt32):Void;
- static function writeUInt64(view:View<UInt8>, value:UInt64):Void;
- static function writeFloat32(view:View<UInt8>, value:Float32):Void;
- static function writeFloat64(view:View<UInt8>, value:Float64):Void;
- static function writeLittleEndianPointer<T>(view:View<UInt8>, value:Pointer<T>):Void;
- static function writeLittleEndianInt16(view:View<UInt8>, value:Int16):Void;
- static function writeLittleEndianInt32(view:View<UInt8>, value:Int32):Void;
- static function writeLittleEndianInt64(view:View<UInt8>, value:Int64):Void;
- static function writeLittleEndianUInt16(view:View<UInt8>, value:UInt16):Void;
- static function writeLittleEndianUInt32(view:View<UInt8>, value:UInt32):Void;
- static function writeLittleEndianUInt64(view:View<UInt8>, value:UInt64):Void;
- static function writeLittleEndianFloat32(view:View<UInt8>, value:Float32):Void;
- static function writeLittleEndianFloat64(view:View<UInt8>, value:Float64):Void;
- static function writeBigEndianPointer<T>(view:View<UInt8>, value:Pointer<T>):Void;
- static function writeBigEndianInt16(view:View<UInt8>, value:Int16):Void;
- static function writeBigEndianInt32(view:View<UInt8>, value:Int32):Void;
- static function writeBigEndianInt64(view:View<UInt8>, value:Int64):Void;
- static function writeBigEndianUInt16(view:View<UInt8>, value:UInt16):Void;
- static function writeBigEndianUInt32(view:View<UInt8>, value:UInt32):Void;
- static function writeBigEndianUInt64(view:View<UInt8>, value:UInt64):Void;
- static function writeBigEndianFloat32(view:View<UInt8>, value:Float32):Void;
- static function writeBigEndianFloat64(view:View<UInt8>, value:Float64):Void;
- }
|