Table.hx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package lua;
  2. /**
  3. This library provides generic functions for table manipulation.
  4. **/
  5. @:native("_G.table")
  6. extern class Table<A,B> implements ArrayAccess<B> implements Dynamic<B> {
  7. public inline static function create<A,B>(?arr:Array<B>, ?hsh:Dynamic<B>) : Table<A,B> {
  8. return untyped __lua_table__(arr,hsh);
  9. }
  10. @:overload(function<A,B>(table:Table<A,B>):Void{})
  11. public static function concat<A,B>(table:Table<A,B>, ?sep:String) : String;
  12. public static function foreach<A,B>(table:Table<A,B>, f:A->B->Void) : Void;
  13. public static function foreachi<A,B>(table:Table<A,B>, f:A->B->Int->Void) : Void;
  14. public static function sort<A,B>(table:Table<A,B>, ?order : A->A->Bool) : Void;
  15. @:overload(function<B>(table:Table<Int,B>, value:B):Void{})
  16. public static function insert<B>(table:Table<Int,B>, pos:Int, value:B) : Void;
  17. @:overload(function<B>(table:Table<Int,B>):Void{})
  18. public static function remove<B>(table:Table<Int,B>, ?pos:Int) : Void;
  19. public static function maxn<B>(table: Table<Int,B>) : Int;
  20. public static function pack<T>(args:T) : Table<Int,T>;
  21. public static function unpack(arg:Table<Dynamic,Dynamic>, ?min:Int, ?max:Int) : Dynamic;
  22. private static function __init__() : Void {
  23. // lua table polyfills
  24. haxe.macro.Compiler.includeFile("lua/_lua/_hx_table_polyfill.lua");
  25. }
  26. }
  27. typedef AnyTable = Table<Dynamic, Dynamic>;