astl icon indicating copy to clipboard operation
astl copied to clipboard

Standard Template Library for AssemblyScript

AssemblyScript Standard Template Library

logo

GitHub license npm version Downloads Build Status

Implementation of STL (Standard Template Library) for the AssemblyScript.

  • Containers
  • Iterators
  • Algorithms
  • Functors

ASTL is an open-source project providing features of the STL, migrated from the C++ to the AssemblyScript. You can enjoy those STL's own specific containers, algorithms and functors in the AssemblyScript.

Below components are list of the provided objects in the ASTL.

Features

Containers

  • Linear Conatainers
    • Vector
    • Deque
    • List
    • ForwardList
    • VectorBoolean
  • Associative Containers
    • Tree-structured ontainers
      • TreeMap
      • TreeMultiMap
      • TreeMultiSet
      • TreeSet
    • Hash-buckets based containers
      • HashMap
      • HashMultiMap
      • HashMultiSet
      • HashSet
  • Adaptor Containers
    • Linear adaptors
      • Stack
      • Queue
      • PriorityQueue
    • Associative adaptors
      • experimental.FlatMap
      • experimental.FlatMultiMap
      • experimental.FlatMultiSet
      • experimental.FlatSet
      • experimental.LightMap
      • experimental.LightSet

Algorithms

  • <algorithm>
    • binary_search
    • heap
    • iterations
    • mathematics
    • merge
    • modifiers
    • partition
    • sorting
    • union_set

Functors

  • <exception>
    • Exception
      • LogicError
      • RntimeError
  • <functional>
    • comparators
    • hash
  • <numeric>
    • operators
    • operations
    • special_math
  • <utility>

Installation

NPM Module

Installing the ASTL in the NodeJS environment is very easy. Just install with the npm.

npm install --save astl

Usage

import std from "astl";

function main(): void
{
    const map: std.TreeMap<i32, string> = new std.TreeMap();

    map.emplace(1, "First");
    map.emplace(4, "Fourth");
    map.emplace(5, "Fifth");
    map.set(9, "Nineth");

    for (let it = map.begin(); it != map.end(); it = it.next())
        trace(it.first.toString() + ", " + it.second);

    const it: std.TreeMap.Iterator<i32, string> = map.lower_bound(3);
    trace("lower_bound() of 3 is: " + it.first.toString());
}
main();