Skip to content

Instantly share code, notes, and snippets.

@ukyo
Created November 14, 2012 17:04
Show Gist options
  • Select an option

  • Save ukyo/4073354 to your computer and use it in GitHub Desktop.

Select an option

Save ukyo/4073354 to your computer and use it in GitHub Desktop.
haxe typedarray extern
extern class ArrayBuffer
{
public function new(byteLength:Int):Void;
public var byteLength(default, null):Int;
public function slice(begin:Int, ?end:Int):ArrayBuffer;
}
extern private class ArrayBufferView
{
public var buffer(default, null):ArrayBuffer;
public var byteOffset(default, null):Int;
public var byteLength(default, null):Int;
}
extern class Int8Array extends ArrayBufferView, implements ArrayAccess<Int>
{
public static var BYTES_PER_ELEMENT:Int;
public var length:Int;
@:overload(function(length:Int):Void {})
@:overload(function(array:Int8Array):Void {})
@:overload(function(array:Array<Int>):Void {})
@:overload(function(array:ArrayAccess<Int>):Void {})
public function new(buffer:ArrayBuffer, ?byteOffset:Int, ?length:Int):Void;
@:overload(function(array:Array<Int>, ?offset:Int):Void {})
@:overload(function(array:Int8Array, ?offset:Int):Void {})
public function set(array:ArrayAccess<Int>, ?offset:Int):Void;
public function subarray(start:Int, end:Int):Int8Array;
}
extern class Uint8Array extends ArrayBufferView, implements ArrayAccess<Int>
{
public static var BYTES_PER_ELEMENT:Int;
public var length:Int;
@:overload(function(length:Int):Void {})
@:overload(function(array:Uint8Array):Void {})
@:overload(function(array:Array<Int>):Void {})
@:overload(function(array:ArrayAccess<Int>):Void {})
public function new(buffer:ArrayBuffer, ?byteOffset:Int, ?length:Int):Void;
@:overload(function(array:Array<Int>, ?offset:Int):Void {})
@:overload(function(array:Uint8Array, ?offset:Int):Void {})
public function set(array:ArrayAccess<Int>, ?offset:Int):Void;
public function subarray(start:Int, end:Int):Uint8Array;
}
extern class Int16Array extends ArrayBufferView, implements ArrayAccess<Int>
{
public static var BYTES_PER_ELEMENT:Int;
public var length:Int;
@:overload(function(length:Int):Void {})
@:overload(function(array:Int16Array):Void {})
@:overload(function(array:Array<Int>):Void {})
@:overload(function(array:ArrayAccess<Int>):Void {})
public function new(buffer:ArrayBuffer, ?byteOffset:Int, ?length:Int):Void;
@:overload(function(array:Array<Int>, ?offset:Int):Void {})
@:overload(function(array:Int16Array, ?offset:Int):Void {})
public function set(array:ArrayAccess<Int>, ?offset:Int):Void;
public function subarray(start:Int, end:Int):Int16Array;
}
extern class Uint16Array extends ArrayBufferView, implements ArrayAccess<Int>
{
public static var BYTES_PER_ELEMENT:Int;
public var length:Int;
@:overload(function(length:Int):Void {})
@:overload(function(array:Uint16Array):Void {})
@:overload(function(array:Array<Int>):Void {})
@:overload(function(array:ArrayAccess<Int>):Void {})
public function new(buffer:ArrayBuffer, ?byteOffset:Int, ?length:Int):Void;
@:overload(function(array:Array<Int>, ?offset:Int):Void {})
@:overload(function(array:Uint16Array, ?offset:Int):Void {})
public function set(array:ArrayAccess<Int>, ?offset:Int):Void;
public function subarray(start:Int, end:Int):Uint16Array;
}
extern class Int32Array extends ArrayBufferView, implements ArrayAccess<Int>
{
public static var BYTES_PER_ELEMENT:Int;
public var length:Int;
@:overload(function(length:Int):Void {})
@:overload(function(array:Int32Array):Void {})
@:overload(function(array:Array<Int>):Void {})
@:overload(function(array:ArrayAccess<Int>):Void {})
public function new(buffer:ArrayBuffer, ?byteOffset:Int, ?length:Int):Void;
@:overload(function(array:Array<Int>, ?offset:Int):Void {})
@:overload(function(array:Int32Array, ?offset:Int):Void {})
public function set(array:ArrayAccess<Int>, ?offset:Int):Void;
public function subarray(start:Int, end:Int):Int32Array;
}
extern class Uint32Array extends ArrayBufferView, implements ArrayAccess<Int>
{
public static var BYTES_PER_ELEMENT:Int;
public var length:Int;
@:overload(function(length:Int):Void {})
@:overload(function(array:Uint32Array):Void {})
@:overload(function(array:Array<Int>):Void {})
@:overload(function(array:ArrayAccess<Int>):Void {})
public function new(buffer:ArrayBuffer, ?byteOffset:Int, ?length:Int):Void;
@:overload(function(array:Array<Int>, ?offset:Int):Void {})
@:overload(function(array:Uint32Array, ?offset:Int):Void {})
public function set(array:ArrayAccess<Int>, ?offset:Int):Void;
public function subarray(start:Int, end:Int):Uint32Array;
}
extern class Float32Array extends ArrayBufferView, implements ArrayAccess<Float>
{
public static var BYTES_PER_ELEMENT:Int;
public var length:Int;
@:overload(function(length:Int):Void {})
@:overload(function(array:Float32Array):Void {})
@:overload(function(array:Array<Float>):Void {})
@:overload(function(array:ArrayAccess<Float>):Void {})
public function new(buffer:ArrayBuffer, ?byteOffset:Int, ?length:Int):Void;
@:overload(function(array:Array<Float>, ?offset:Int):Void {})
@:overload(function(array:Float32Array, ?offset:Int):Void {})
public function set(array:ArrayAccess<Float>, ?offset:Int):Void;
public function subarray(start:Int, end:Int):Float32Array;
}
extern class Float64Array extends ArrayBufferView, implements ArrayAccess<Float>
{
public static var BYTES_PER_ELEMENT:Int;
public var length:Int;
@:overload(function(length:Int):Void {})
@:overload(function(array:Float64Array):Void {})
@:overload(function(array:Array<Float>):Void {})
@:overload(function(array:ArrayAccess<Float>):Void {})
public function new(buffer:ArrayBuffer, ?byteOffset:Int, ?length:Int):Void;
@:overload(function(array:Array<Float>, ?offset:Int):Void {})
@:overload(function(array:Float64Array, ?offset:Int):Void {})
public function set(array:ArrayAccess<Float>, ?offset:Int):Void;
public function subarray(start:Int, end:Int):Float64Array;
}
extern class DataView extends ArrayBufferView
{
public function new(buffer:ArrayBuffer, ?byteOffset:Int, ?byteLength:Int):Void;
public function getInt8(byteOffset:Int):Int;
public function getUint8(byteOffset:Int):Int;
public function getInt16(byteOffset:Int, ?littleEndian:Bool):Int;
public function getUint16(byteOffset:Int, ?littleEndian:Bool):Int;
public function getInt32(byteOffset:Int, ?littleEndian:Bool):Int;
public function getUint32(byteOffset:Int, ?littleEndian:Bool):Int;
public function getFloat32(byteOffset:Int, ?littleEndian:Bool):Float;
public function getFloat64(byteOffset:Int, ?littleEndian:Bool):Float;
public function setInt8(byteOffset:Int, value:Int):Int;
public function setUint8(byteOffset:Int, value:Int):Int;
public function setInt16(byteOffset:Int, value:Int, ?littleEndian:Bool):Int;
public function setUint16(byteOffset:Int, value:Int, ?littleEndian:Bool):Int;
public function setInt32(byteOffset:Int, value:Int, ?littleEndian:Bool):Int;
public function setUint32(byteOffset:Int, value:Int, ?littleEndian:Bool):Int;
public function setFloat32(byteOffset:Int, value:Float, ?littleEndian:Bool):Float;
public function setFloat64(byteOffset:Int, value:Float, ?littleEndian:Bool):Float;
}
@darmie

darmie commented Nov 16, 2016

Copy link
Copy Markdown

Is this for all targets, or just for javascript?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment