Socket
Book a DemoInstallSign in
Socket

generic-bitmask

Package Overview
Dependencies
Maintainers
2
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

generic-bitmask

Module to compute and manipulate bitmasks in JavaScript

latest
Source
npmnpm
Version
0.0.7
Version published
Weekly downloads
689
60.61%
Maintainers
2
Weekly downloads
 
Created
Source

Bitmask

This module enables easy manipulation and usage of bitmasking technique in JavaScript.

What is bitmask?

A bit mask is a binary number or a bitmap where the desired bit(s) are one and the remaining 0. By performing a bitwise AND operation of a value with a bitmask, one can test for certain bits being on.

Using a bitmask, it is very easy to store the boolean status of multiple flags in a single variable (of higher base.) A very common use case is to store "permission" value for an object. For example, whether an entity has read or write permission to an object can be determined easily by storing two flags "read" and "write" within a single variable.

More details on this detailed Wikipedia article on Bitmasking.

Installation

Installation can be done using npm for using in NodeJS applications.

npm install generic-bitmask --save-dev;

Usage

var Bitmask = require('generic-bitmask').Mask;

// create a new instance of bitmask
var mask = new Bitmask();

// Set the mask flags for the mask
mask.add(3); // sets 3rd bit to positive
mask.add(5); // sets 5th bit to positive

// check which bit is set to true
console.log(mask.test(3)); // logs true;
console.log(mask.test(4)); // logs false;

// remove a bit that has been set as true
mask.remove(5);
console.log(mask.test(5)); // logs false;

// Get the raw state of the mask in decimal value
console.log(mask.get()); // logs 8;

// Set the raw state of the mask. Useful to load saved mask state
mask.set(40); // sets 3 and 5 to true;
console.log(mask.test(3)); // logs true;
console.log(mask.test(4)); // logs false;
console.log(mask.test(5)); // logs true;
console.log(mask.test([3, 5])); // logs true;

Using the mask descriptor

var Bitmask = require('generic-bitmask').Mask,
	Descriptor = require('generic-bitmask').Descriptor;

// create a new instance of bitmask
var mask = new Bitmask(),
	descriptors = new Descriptor({
		read: 1,
		write: 2
	});

// Set the mask flags for the mask
descriptor.add('read', mask);
descriptor.validate('read', mask); // returns true
descriptor.extract(mask); // returns ['read']
descriptor.remove('read', mask);

// Check if bit names are set
descriptor.defined('read') // returns true

Keywords

postman

FAQs

Package last updated on 22 Sep 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts