2017-12-16 17:54:53 +01:00
|
|
|
export class Map<K,V> {
|
2018-01-29 22:36:07 +01:00
|
|
|
|
|
|
|
private __keys: K[] = [];
|
|
|
|
private __values: V[] = [];
|
|
|
|
|
|
|
|
// FIXME: not a proper map implementation, just a filler
|
|
|
|
|
|
|
|
get size(): i32 {
|
|
|
|
return this.__keys.length;
|
|
|
|
}
|
|
|
|
|
|
|
|
get(key: K): V | null {
|
|
|
|
var keys = this.__keys;
|
2018-03-13 02:32:10 +01:00
|
|
|
for (let i = 0, k = keys.length; i < k; ++i) {
|
2018-02-25 23:21:32 +01:00
|
|
|
if (keys[i] == key) {
|
2018-01-29 22:36:07 +01:00
|
|
|
return this.__values[i];
|
2018-02-25 23:21:32 +01:00
|
|
|
}
|
|
|
|
}
|
2018-01-29 22:36:07 +01:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
has(key: K): bool {
|
|
|
|
var keys = this.__keys;
|
2018-03-13 02:32:10 +01:00
|
|
|
for (let i = 0, k = keys.length; i < k; ++i) {
|
2018-02-25 23:21:32 +01:00
|
|
|
if (keys[i] == key) {
|
2018-01-29 22:36:07 +01:00
|
|
|
return true;
|
2018-02-25 23:21:32 +01:00
|
|
|
}
|
|
|
|
}
|
2018-01-29 22:36:07 +01:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
set(key: K, value: V): void {
|
|
|
|
this.__keys.push(key);
|
|
|
|
this.__values.push(value);
|
|
|
|
}
|
|
|
|
|
|
|
|
clear(): void {
|
|
|
|
this.__keys.length = 0;
|
|
|
|
this.__values.length = 0;
|
|
|
|
}
|
2017-12-16 17:54:53 +01:00
|
|
|
}
|