@mightyplow/flags
v1.1.2
Published
A utility to handle bitwise flags.
Downloads
4
Readme
flags
Utilites to manipulate single bits in a sequence of bits. This can be used to store specific boolean flags in a memory saving manor.
Installation
npm i @mightyplow/flags
API
set (flag: number | number[], sequence = 0): number
Sets one or multiple flags on a sequence of bits.
unset (flag: number | number[], sequence = 0): number
Unsets one or multiple flags on a sequence of bits.
isset (flag: number | number[], sequence = 0): boolean
Checks one or multiple flags on a sequence of bits. Returns true, when all requested bits are set to 1.
toggle (flag: number | number[], sequence = 0): number
Inverts one or multiple flags on a sequence of bits.
Examples
Store option flags
import { set } from '@mightyplow/flags'
const Option = {
foo: 2 ** 0,
bar: 2 ** 1,
baz: 2 ** 2
}
const base = 0b000;
console.log(set([Option.foo, Option.baz], base).toSting(2)) // "101"
Create a function to check flags
import { isset } from '@mightyplow/flags'
const Option = {
foo: 2 ** 0,
bar: 2 ** 1,
baz: 2 ** 2
}
const hasFooAndBaz = (flags) => isset([Option.foo, Option.baz], flags)
console.log(hasFooAndBaz(0b101)) // true
console.log(hasFooAndBaz(0b001)) // false