|
@@ -26,75 +26,67 @@ import python.Tuple;
|
|
|
import python.NativeIterator;
|
|
|
import python.Syntax;
|
|
|
|
|
|
-
|
|
|
-extern class DictView<T> {
|
|
|
- private function __iter__():NativeIterator<T>;
|
|
|
- public inline function iter ():NativeIterator<T>
|
|
|
- {
|
|
|
- return UBuiltins.iter(this);
|
|
|
- }
|
|
|
- public inline function length ():Int
|
|
|
- {
|
|
|
- return UBuiltins.len(this);
|
|
|
- }
|
|
|
-
|
|
|
- public inline function iterator ():Iterator<T>
|
|
|
- {
|
|
|
- return iter();
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
@:native("dict")
|
|
|
extern class Dict<K,V> {
|
|
|
- public function new ():Void;
|
|
|
+ function new ():Void;
|
|
|
|
|
|
- public inline function length ():Int
|
|
|
- {
|
|
|
+ var length(get,never):Int;
|
|
|
+ private inline function get_length():Int {
|
|
|
return UBuiltins.len(this);
|
|
|
}
|
|
|
|
|
|
- public inline function hasKey (k:K):Bool {
|
|
|
- return DictImpl.hasKey(this,k);
|
|
|
- }
|
|
|
-
|
|
|
- public function clear ():Void;
|
|
|
- public function copy ():Dict<K,V>;
|
|
|
- public function get (key:K, def:V):V;
|
|
|
+ function get(key:K, ?def:V):V;
|
|
|
|
|
|
- public function update (d:Dict<K,V>):Void;
|
|
|
+ inline function getSafe(key:K):V {
|
|
|
+ return Syntax.arrayAccess(this, key);
|
|
|
+ }
|
|
|
|
|
|
- public function keys ():DictView<K>;
|
|
|
- public function values ():DictView<V>;
|
|
|
- public function items ():DictView<Tuple2<K,V>>;
|
|
|
+ inline function set(key:K, val:V):Void {
|
|
|
+ Syntax.arraySet(this, key, val);
|
|
|
+ }
|
|
|
|
|
|
+ inline function remove(key:K):Void {
|
|
|
+ Syntax.delete(python.Syntax.arrayAccess(this, key));
|
|
|
+ }
|
|
|
|
|
|
- public inline function set (key:K, val:V):Void {
|
|
|
- DictImpl.set(this, key, val);
|
|
|
+ inline function hasKey(k:K):Bool {
|
|
|
+ return Syntax.isIn(k, this);
|
|
|
}
|
|
|
|
|
|
- public inline function remove (key:K):Void
|
|
|
- {
|
|
|
- DictImpl.remove(this, key);
|
|
|
+ function clear():Void;
|
|
|
+ function copy():Dict<K,V>;
|
|
|
+ function items():DictView<Tuple2<K,V>>;
|
|
|
+ function keys():DictView<K>;
|
|
|
+ function pop(key:K, ?def:V):V;
|
|
|
+ function popitem():Tuple2<K,V>;
|
|
|
+ function setdefault(key:K, ?def:V):V;
|
|
|
+ function update(d:Dict<K,V>):Void;
|
|
|
+ function values():DictView<V>;
|
|
|
+
|
|
|
+ inline function iter():NativeIterator<K> {
|
|
|
+ return UBuiltins.iter(this);
|
|
|
}
|
|
|
|
|
|
- public inline function iterator ():Iterator<V>
|
|
|
- {
|
|
|
+ inline function iterator():Iterator<V> {
|
|
|
return values().iter();
|
|
|
}
|
|
|
+
|
|
|
private function __iter__():NativeIterator<K>;
|
|
|
}
|
|
|
|
|
|
-class DictImpl {
|
|
|
-
|
|
|
- public static inline function hasKey <X>(d:Dict<X, Dynamic>, key:X) {
|
|
|
- return Syntax.isIn(key, d);
|
|
|
+extern class DictView<T> {
|
|
|
+ var length(get,never):Int;
|
|
|
+ private inline function get_length():Int {
|
|
|
+ return UBuiltins.len(this);
|
|
|
}
|
|
|
|
|
|
- public static inline function remove <X>(d:Dict<X, Dynamic>, key:X) {
|
|
|
- Syntax.delete(python.Syntax.arrayAccess(d, key));
|
|
|
+ inline function iter():NativeIterator<T> {
|
|
|
+ return UBuiltins.iter(this);
|
|
|
}
|
|
|
|
|
|
- public static inline function set <K,V>(d:Dict<K, V>, key:K, val:V) {
|
|
|
- Syntax.arraySet(d, key, val);
|
|
|
+ inline function iterator():Iterator<T> {
|
|
|
+ return iter();
|
|
|
}
|
|
|
+
|
|
|
+ private function __iter__():NativeIterator<T>;
|
|
|
}
|