Skip to content

Latest commit

 

History

History

bimap

npm version Deno

Licence

@rimbu/bimap

Welcome to @rimbu/bimap! A BiMap is a powerful bidirectional map that ensures a one-to-one mapping between keys and values. Each key is associated with exactly one value, and each value is associated with exactly one key.

Key Features:

  • Bidirectional Mapping: Effortlessly navigate between keys and values.
  • Unique Associations: Guarantees unique key-value pairs, ensuring data integrity.

Exported Types:

Name Description
BiMap<K, V> A generic BiMap for keys of type K and values of type V.
HashBiMap<K, V> A BiMap where both keys and values are hashed for efficient lookups.
SortedBiMap<K, V> A BiMap where both keys and values are sorted, providing ordered traversal and lookups.

Documentation

For complete documentation, please visit the BiMap page in the Rimbu Docs, or directly explore the Rimbu BiMap API Docs.

Try It Out

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

Installation

Compabitity

Package Managers

Yarn:

yarn add @rimbu/bimap

npm:

npm install @rimbu/bimap

Bun:

bun add @rimbu/bimap

Deno Setup

Create or edit import_map.json in your project root:

{
  "imports": {
    "@rimbu/": "https://deno.land/x/rimbu@x.y.z/"
  }
}

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 { HashBiMap } from '@rimbu/bimap';

const biMap = HashBiMap.of([1, 'a'], [2, 'b'], [3, 'b']);
console.log(biMap.toString());
// HashBiMap(3 -> b)

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.