Procházet zdrojové kódy

Add some substr helpers. Add better enumEq function

hughsando před 5 roky
rodič
revize
791be68265
2 změnil soubory, kde provedl 19 přidání a 3 odebrání
  1. 14 0
      std/cpp/NativeString.hx
  2. 5 3
      std/cpp/_std/Type.hx

+ 14 - 0
std/cpp/NativeString.hx

@@ -36,6 +36,20 @@ extern class NativeString {
 		return untyped __global__.String(inPtr.ptr, inLen);
 	}
 
+	@:native("__hxcpp_parse_float")
+	public static function parseFloat(inString:String):Float;
+
+	@:native("__hxcpp_parse_substr_float")
+	public static function parseSubstrFloat(inString:String,start:Int, length:Int):Float;
+
+	// Will return 0 for invalid string
+	@:native("__hxcpp_parse_substr_int")
+	public static function parseInt(inString:String):Int;
+
+	// Will return 0 for invalid string
+	@:native("__hxcpp_parse_substr_int")
+	public static function parseSubstrInt(inString:String,start:Int, length:Int):Int;
+
 	@:native("_hx_string_compare")
 	static function compare(inString0:String, inString1:String):Int;
 

+ 5 - 3
std/cpp/_std/Type.hx

@@ -143,10 +143,12 @@ enum ValueType {
 			}
 		}
 
+	@:native("__hxcpp_enum_eq")
+	extern private static function nativeEnumEq(a:Dynamic, b:Dynamic):Bool;
+
+   #if !cppia inline #end
 	public static function enumEq<T>(a:T, b:T):Bool
-		untyped {
-			return a == b;
-		}
+		return nativeEnumEq(a,b);
 
 	public static function enumConstructor(e:EnumValue):String {
 		var value:cpp.EnumBase = cast e;