1.1.2 • Published 5 years ago

@mightyplow/flags v1.1.2

Weekly downloads
5
License
Beerware
Repository
-
Last release
5 years ago

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
1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.0

5 years ago