42 lines
766 B
TypeScript
Raw Normal View History

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;
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;
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
}