mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-13 23:11:41 +00:00
Parser fixes; Lib updates
This commit is contained in:
4
std/assembly/iterator.ts
Normal file
4
std/assembly/iterator.ts
Normal file
@ -0,0 +1,4 @@
|
||||
// export abstract class Iterator<T> {
|
||||
// abstract get done(): bool;
|
||||
// abstract next(): T;
|
||||
// }
|
@ -1,3 +1,37 @@
|
||||
export class Map<K,V> {
|
||||
// TODO
|
||||
|
||||
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 (var i = 0, k = keys.length; i < k; ++i)
|
||||
if (keys[i] == key)
|
||||
return this.__values[i];
|
||||
return null;
|
||||
}
|
||||
|
||||
has(key: K): bool {
|
||||
var keys = this.__keys;
|
||||
for (var i = 0, k = keys.length; i < k; ++i)
|
||||
if (keys[i] == key)
|
||||
return true;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -66,3 +66,14 @@ export class Set<T> {
|
||||
|
||||
// TODO: think about iterators
|
||||
}
|
||||
|
||||
// class SetIterator<T> extends Iterator<T> {
|
||||
|
||||
// get done(): bool {
|
||||
// throw new Error("not implemented");
|
||||
// }
|
||||
|
||||
// next(): T {
|
||||
// throw new Error("not implemented");
|
||||
// }
|
||||
// }
|
||||
|
Reference in New Issue
Block a user