-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathType.hx
47 lines (42 loc) · 1.58 KB
/
Type.hx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package;
/**
* ...
* @author YellowAfterlife
*/
enum ValueType {
TNull;
TInt;
TFloat;
TBool;
TObject;
TFunction;
TClass( c : Class<Dynamic> );
TEnum( e : Enum<Dynamic> );
TUnknown;
}
@:coreApi extern class Type {
static function getClass<T>( o : T ) : Class<T>;
static function getEnum( o : EnumValue ) : Enum<Dynamic>;
static function getSuperClass( c : Class<Dynamic> ) : Class<Dynamic>;
static function getClassName( c : Class<Dynamic> ) : String;
static function getEnumName( e : Enum<Dynamic> ) : String;
static function resolveClass( name : String ) : Class<Dynamic>;
static function resolveEnum( name : String ) : Enum<Dynamic>;
static function createInstance<T>( cl : Class<T>, args : Array<Dynamic> ) : T;
static function createEmptyInstance<T>( cl : Class<T> ) : T;
static function createEnum<T>( e : Enum<T>, constr : String, ?params : Array<Dynamic> ) : T;
static function createEnumIndex<T>( e : Enum<T>, index : Int, ?params : Array<Dynamic> ) : T;
static function getInstanceFields( c : Class<Dynamic> ) : Array<String>;
static function getClassFields( c : Class<Dynamic> ) : Array<String>;
static function getEnumConstructs( e : Enum<Dynamic> ) : Array<String>;
static function typeof( v : Dynamic ) : ValueType;
static function enumEq<T>( a : T, b : T ) : Bool;
static function enumConstructor( e : EnumValue ) : String;
inline static function enumParameters( e : EnumValue ) : Array<Dynamic> {
return untyped e.slice(2);
}
inline static function enumIndex( e : EnumValue ) : Int {
return untyped e[1];
}
static function allEnums<T>( e : Enum<T> ) : Array<T>;
}