@rimbu/multimap

An immutable Map where each key can have multiple values

Usage no npm install needed!

<script type="module">
  import rimbuMultimap from 'https://cdn.skypack.dev/@rimbu/multimap';
</script>

README

@rimbu/multimap

A Rimbu MultiMap is a Map in which each key has one or more values. For each key, it's associated values are unique, that is, the values for each key are kept in a Set.

This package exports the following types:

Name Description
HashMultiMapHashValue<K, V> a multimap between hashed values of type K and hashed values of type V
HashMultiMapSortedValue<K, V> a multimap between hashed values of type K and sorted values of type V
MultiMap<K, V> a generic multimap between values of type K and values of type V
SortedMultiMapHashValue<K, V> a multimap between sorted values of type K and hashed values of type V
SortedMultiMapSortedValue<K, V> a multimap between sorted values of type K and sorted values of type V
VariantMultiMap<K, V> a type-variant multimap between values of type K and values of type V

For complete documentation please visit the MultiMap page in the Rimbu Docs.

Or Try Out Rimbu in CodeSandBox.

Installation

All types are exported through @rimbu/core. It is recommended to use that package.

To install separately:

Yarn/NPM

yarn add @rimbu/multimap

or

npm i @rimbu/multimap

Deno

Create a file called rimbu.ts and add the following:

export * from 'https://deno.land/x/rimbu/multimap/mod.ts';

Or using a pinned version (x.y.z):

export * from 'https://deno.land/x/rimbu/multimap@x.y.z/mod.ts';

Then import what you need from rimbu.ts:

import { HashMultiMapHashValue } from './rimbu.ts';

Because Rimbu uses complex types, it's recommended to use the --no-check flag (your editor should already have checked your code) and to specify a tsconfig.json file with the settings described below.

Running your script then becomes:

deno run --no-check --config tsconfig.json <your-script>.ts

Usage

import { HashMultiMapHashValue } from '@rimbu/multimap';

console.log(HashMultiMapHashValue.of([1, 2], [1, 3], [2, 3]).toString());

Usage

Author

Arvid Nicolaas

Contributing

Feel very welcome to contribute to further improve Rimbu. Please read our Contributing guide.

Contributors

Made with contributors-img.

License

Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas.

See LICENSE for more information.