@speckle/objectloader2
Version:
This is an updated objectloader for the Speckle viewer written in typescript
38 lines • 948 B
JavaScript
export default class KeyedQueue {
_map;
_order;
constructor() {
this._map = new Map();
this._order = [];
}
enqueue(key, value) {
if (this._map.has(key)) {
return false; // Key already exists
}
this._map.set(key, value);
this._order.push(key);
return true;
}
get(key) {
return this._map.get(key);
}
has(key) {
return this._map.has(key);
}
get size() {
return this._order.length;
}
spliceValues(start, deleteCount) {
const splicedKeys = this._order.splice(start, deleteCount);
const result = [];
for (const key of splicedKeys) {
const value = this._map.get(key);
if (value !== undefined) {
result.push(value);
this._map.delete(key);
}
}
return result;
}
}
//# sourceMappingURL=keyedQueue.js.map