array-map-set

1.0.3 • Public • Published

ArrayMap and ArraySet Travis CI

Just like regular Map and Set, but treats different ArrayBufferViews with the same values as equal.

When dealing with Uint8Array or other ArrayBufferView instance, you might receive them from different sources (like from the network, binary files, etc). If you use these Uint8Arrays as keys in Map or Set, different instances will be treated as completely different keys. This package provides ArrayMap and ArraySet implementations, that work exactly the same way as plain versions, but treat such Uint8Arrays as the same as long as they have the same contents. You will also get consistently the same instance of Uint8Array as you iterate over keys or values and all of the ArrayMap or ArraySet will share the same instance of Uint8Array.

Internal implementation uses WeakMap and is optimized for high memory efficiency and performance.

How to install

npm install array-map-set

How to use

Node.js:

var array_map_set = require('array-map-set')

// Do stuff

Browser:

requirejs(['array-map-set'], function (array_map_set) {
    // Do stuff
})

API

array_map_set.ArrayMap(array : Array) : Map

Similar to plain Map (only accepts arrays as argument though), returns Map object.

array_map_set.ArraySet(array : Array) : Set

Similar to plain Set (only accepts arrays as argument though), returns Set object.

Contribution

Feel free to create issues and send pull requests (for big changes create an issue first and link it from the PR), they are highly appreciated!

When reading LiveScript code make sure to configure 1 tab to be 4 spaces (GitHub uses 8 by default), otherwise code might be hard to read.

License

Free Public License 1.0.0 / Zero Clause BSD License

https://opensource.org/licenses/FPL-1.0.0

https://tldrlegal.com/license/bsd-0-clause-license

Package Sidebar

Install

npm i array-map-set

Weekly Downloads

1

Version

1.0.3

License

0BSD

Unpacked Size

13.1 kB

Total Files

6

Last publish

Collaborators

  • nazar-pc