Skip to content

Latest commit

 

History

History

ordered

npm version Deno

Licence

@rimbu/ordered

Welcome to @rimbu/ordered! This package provides implementations of OrderedMap and OrderedSet, which are designed to maintain the insertion order of elements. These collections are wrappers around other RMap and RSet implementations, ensuring that iteration over the collections returns values in the order they were added.

Key Features:

  • Insertion Order: Maintains the order in which elements are added.
  • Flexible Wrappers: Wraps around existing RMap and RSet implementations.
  • Efficient Iteration: Iterating over the collections respects the insertion order.

Exported Types:

Name Description
OrderedMap<K, V> A map with entries of key type K and value type V, where key insertion order is maintained.
OrderedSet<T> A set of value type T where insertion order is maintained.

Documentation

For complete documentation, please visit the Map or Set pages in the Rimbu Docs, or directly explore the Rimbu Ordered API Docs.

Try It Out

Experience @rimbu/ordered in action! Try Out Rimbu on CodeSandBox.

Installation

Compabitity

Package Managers

Yarn:

yarn add @rimbu/ordered

npm:

npm install @rimbu/ordered

Bun:

bun add @rimbu/ordered

Deno Setup

Create or edit import_map.json in your project root:

{
  "imports": {
    "@rimbu/": "https://deno.land/x/[email protected]/"
  }
}

Replace x.y.z with the desired version.

In this way you can use relative imports from Rimbu in your code, like so:

import { List } from '@rimbu/core/mod.ts';
import { HashMap } from '@rimbu/hashed/mod.ts';

Note that for sub-packages, due to conversion limitations it is needed to import the index.ts instead of mod.ts, like so:

import { HashMap } from '@rimbu/hashed/map/index.ts';

To run your script (let's assume the entry point is in src/main.ts):

deno run --import-map import_map.json src/main.ts

Usage

import { OrderedHashSet } from '@rimbu/ordered';

console.log(OrderedHashSet.of(1, 3, 2, 3, 1).toString());

Author

Created and maintained by Arvid Nicolaas.

Contributing

We welcome contributions! Please read our Contributing guide.

Contributors

Made with contributors-img.

License

This project is licensed under the MIT License. See the LICENSE for details.