You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extension of TypeScript-STLContainers dispatching Events.
TSTL is an open-source project providing features of STL, migrated from C++ to TypeScript. You can enjoy the STL's own specific containers, algorithms and functors in the JavaScript. If TypeScript, you also can take advantage of type restrictions and generic programming with the TypeScript.
ECOL is an extension module of such TSTL, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. Types of the event dispatched by the special collections are "insert", "erase" and "refresh".
Features
Linear Collections
ArrayCollection
DequeCollection
ListCollection
Set Containers
Tree-based Collections
TreeSetCollection
TreeMultiSetCollection
Hash-buckets based Collections
HashSetCollection
HashMultiSetCollection
Map Collections
Tree-based Collections
TreeMapCollection
TreeMultiMapCollection
Hash-buckets based Collections
HashMapCollection
HashMultiMapCollection
Installation
NPM Module
Installing ECOL in NodeJS is very easy. Just install with the npm.
# Install TSTL from the NPM module
npm install --save ecol
Usage
import{TreeMapCollection}from"ecol";functionlistener(event: TreeMapCollection.Event<number,string>): void{console.log("Event type is: "+event.type);for(letit=event.first;!it.equals(event.last);it=it.next())console.log("\t","An element by that event:",it.value);}functionmain(): void{// CONSTRUCT EVENT TREE-MAPletmap: TreeMapCollection<number,string>=newTreeMapCollection();map.addEventListener("insert",listener);map.addEventListener("erase",listener);// DISPATCHES INSERT EVENTmap.set(1,"One");map.set(2,"Two");map.set(3,"Three");// DISPATCHES ERASE EVENTmap.erase(2);map.erase(3);// DISPATCHES REFRESH EVENTmap.set(2,"Second");// AUTOMATICmap.refresh();// BY USER}main();