fast-boolean-array 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{index.js → bench.js} +1 -30
- package/dist/index.cjs +54 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +11 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/package.json +20 -4
- package/src/index.ts +29 -0
package/{index.js → bench.js}
RENAMED
|
@@ -1,36 +1,7 @@
|
|
|
1
|
+
import BooleanArray from 'boolean-array';
|
|
1
2
|
import { performance } from 'node:perf_hooks';
|
|
2
|
-
import BooleanArrayExisting from 'boolean-array';
|
|
3
3
|
import { serialize } from 'v8';
|
|
4
4
|
|
|
5
|
-
export class BooleanArray {
|
|
6
|
-
constructor(size) {
|
|
7
|
-
this.size = size;
|
|
8
|
-
this.buffer = new Uint8Array(Math.ceil(size / 8)); // Allocate memory
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
// Set a boolean value at a specific index, hex, or RGB
|
|
12
|
-
set(input, value) {
|
|
13
|
-
if (value) {
|
|
14
|
-
this.buffer[input >> 3] |= 1 << (input & 7); // Set bit
|
|
15
|
-
} else {
|
|
16
|
-
this.buffer[input >> 3] &= ~(1 << (input & 7)); // Clear bit
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// Get a boolean value at a specific index, hex, or RGB
|
|
21
|
-
get(input) {
|
|
22
|
-
return (this.buffer[input >> 3] & (1 << input % 8)) !== 0; // Check bit
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
get length() {
|
|
26
|
-
return this.size;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
set length(value) {
|
|
30
|
-
throw new Error("Setting the length on BooleanArray's is not supported");
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
5
|
function getMemoryUsageOfReference(ref) {
|
|
35
6
|
const serialized = serialize(ref); // Convert the reference to a Buffer
|
|
36
7
|
return serialized.length; // The size of the serialized Buffer in bytes
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var src_exports = {};
|
|
22
|
+
__export(src_exports, {
|
|
23
|
+
FastBooleanArray: () => FastBooleanArray
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(src_exports);
|
|
26
|
+
var FastBooleanArray = class {
|
|
27
|
+
size;
|
|
28
|
+
buffer;
|
|
29
|
+
constructor(size) {
|
|
30
|
+
this.size = size;
|
|
31
|
+
this.buffer = new Uint8Array(Math.ceil(size / 8));
|
|
32
|
+
}
|
|
33
|
+
set(input, value) {
|
|
34
|
+
if (value) {
|
|
35
|
+
this.buffer[input >> 3] |= 1 << (input & 7);
|
|
36
|
+
} else {
|
|
37
|
+
this.buffer[input >> 3] &= ~(1 << (input & 7));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
get(input) {
|
|
41
|
+
return (this.buffer[input >> 3] & 1 << input % 8) !== 0;
|
|
42
|
+
}
|
|
43
|
+
get length() {
|
|
44
|
+
return this.size;
|
|
45
|
+
}
|
|
46
|
+
set length(value) {
|
|
47
|
+
throw new Error("Setting the length on BooleanArray's is not supported");
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
51
|
+
0 && (module.exports = {
|
|
52
|
+
FastBooleanArray
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export class FastBooleanArray {\r\n\tpublic size: number;\r\n\tprivate buffer: Uint8Array;\r\n\r\n\tconstructor(size: number) {\r\n\t\tthis.size = size;\r\n\t\tthis.buffer = new Uint8Array(Math.ceil(size / 8)); // Allocate memory\r\n\t}\r\n\r\n\tset(input: number, value: boolean) {\r\n\t\tif (value) {\r\n\t\t\tthis.buffer[input >> 3] |= 1 << (input & 7); // Set bit\r\n\t\t} else {\r\n\t\t\tthis.buffer[input >> 3] &= ~(1 << (input & 7)); // Clear bit\r\n\t\t}\r\n\t}\r\n\r\n\tget(input: number) {\r\n\t\treturn (this.buffer[input >> 3] & (1 << input % 8)) !== 0; // Check bit\r\n\t}\r\n\r\n\tget length() {\r\n\t\treturn this.size;\r\n\t}\r\n\r\n\tset length(value: number) {\r\n\t\tthrow new Error(\"Setting the length on BooleanArray's is not supported\");\r\n\t}\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,mBAAN,MAAuB;AAAA,EACtB;AAAA,EACC;AAAA,EAER,YAAY,MAAc;AACzB,SAAK,OAAO;AACZ,SAAK,SAAS,IAAI,WAAW,KAAK,KAAK,OAAO,CAAC,CAAC;AAAA,EACjD;AAAA,EAEA,IAAI,OAAe,OAAgB;AAClC,QAAI,OAAO;AACV,WAAK,OAAO,SAAS,CAAC,KAAK,MAAM,QAAQ;AAAA,IAC1C,OAAO;AACN,WAAK,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,QAAQ;AAAA,IAC5C;AAAA,EACD;AAAA,EAEA,IAAI,OAAe;AAClB,YAAQ,KAAK,OAAO,SAAS,CAAC,IAAK,KAAK,QAAQ,OAAQ;AAAA,EACzD;AAAA,EAEA,IAAI,SAAS;AACZ,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,IAAI,OAAO,OAAe;AACzB,UAAM,IAAI,MAAM,uDAAuD;AAAA,EACxE;AACD;","names":[]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare class FastBooleanArray {
|
|
2
|
+
size: number;
|
|
3
|
+
private buffer;
|
|
4
|
+
constructor(size: number);
|
|
5
|
+
set(input: number, value: boolean): void;
|
|
6
|
+
get(input: number): boolean;
|
|
7
|
+
get length(): number;
|
|
8
|
+
set length(value: number);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export { FastBooleanArray };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare class FastBooleanArray {
|
|
2
|
+
size: number;
|
|
3
|
+
private buffer;
|
|
4
|
+
constructor(size: number);
|
|
5
|
+
set(input: number, value: boolean): void;
|
|
6
|
+
get(input: number): boolean;
|
|
7
|
+
get length(): number;
|
|
8
|
+
set length(value: number);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export { FastBooleanArray };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// src/index.ts
|
|
2
|
+
var FastBooleanArray = class {
|
|
3
|
+
size;
|
|
4
|
+
buffer;
|
|
5
|
+
constructor(size) {
|
|
6
|
+
this.size = size;
|
|
7
|
+
this.buffer = new Uint8Array(Math.ceil(size / 8));
|
|
8
|
+
}
|
|
9
|
+
set(input, value) {
|
|
10
|
+
if (value) {
|
|
11
|
+
this.buffer[input >> 3] |= 1 << (input & 7);
|
|
12
|
+
} else {
|
|
13
|
+
this.buffer[input >> 3] &= ~(1 << (input & 7));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
get(input) {
|
|
17
|
+
return (this.buffer[input >> 3] & 1 << input % 8) !== 0;
|
|
18
|
+
}
|
|
19
|
+
get length() {
|
|
20
|
+
return this.size;
|
|
21
|
+
}
|
|
22
|
+
set length(value) {
|
|
23
|
+
throw new Error("Setting the length on BooleanArray's is not supported");
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export {
|
|
27
|
+
FastBooleanArray
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export class FastBooleanArray {\r\n\tpublic size: number;\r\n\tprivate buffer: Uint8Array;\r\n\r\n\tconstructor(size: number) {\r\n\t\tthis.size = size;\r\n\t\tthis.buffer = new Uint8Array(Math.ceil(size / 8)); // Allocate memory\r\n\t}\r\n\r\n\tset(input: number, value: boolean) {\r\n\t\tif (value) {\r\n\t\t\tthis.buffer[input >> 3] |= 1 << (input & 7); // Set bit\r\n\t\t} else {\r\n\t\t\tthis.buffer[input >> 3] &= ~(1 << (input & 7)); // Clear bit\r\n\t\t}\r\n\t}\r\n\r\n\tget(input: number) {\r\n\t\treturn (this.buffer[input >> 3] & (1 << input % 8)) !== 0; // Check bit\r\n\t}\r\n\r\n\tget length() {\r\n\t\treturn this.size;\r\n\t}\r\n\r\n\tset length(value: number) {\r\n\t\tthrow new Error(\"Setting the length on BooleanArray's is not supported\");\r\n\t}\r\n}\r\n"],"mappings":";AAAO,IAAM,mBAAN,MAAuB;AAAA,EACtB;AAAA,EACC;AAAA,EAER,YAAY,MAAc;AACzB,SAAK,OAAO;AACZ,SAAK,SAAS,IAAI,WAAW,KAAK,KAAK,OAAO,CAAC,CAAC;AAAA,EACjD;AAAA,EAEA,IAAI,OAAe,OAAgB;AAClC,QAAI,OAAO;AACV,WAAK,OAAO,SAAS,CAAC,KAAK,MAAM,QAAQ;AAAA,IAC1C,OAAO;AACN,WAAK,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,QAAQ;AAAA,IAC5C;AAAA,EACD;AAAA,EAEA,IAAI,OAAe;AAClB,YAAQ,KAAK,OAAO,SAAS,CAAC,IAAK,KAAK,QAAQ,OAAQ;AAAA,EACzD;AAAA,EAEA,IAAI,SAAS;AACZ,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,IAAI,OAAO,OAAe;AACzB,UAAM,IAAI,MAAM,uDAAuD;AAAA,EACxE;AACD;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fast-boolean-array",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.cjs",
|
|
6
|
+
"module": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
"import": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"require": {
|
|
14
|
+
"types": "./dist/index.d.cts",
|
|
15
|
+
"require": "./dist/index.cjs"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
5
18
|
"scripts": {
|
|
6
|
-
"
|
|
19
|
+
"build": "tsup src/index.ts --dts --format cjs,esm --clean --sourcemap"
|
|
7
20
|
},
|
|
8
21
|
"keywords": [
|
|
9
22
|
"boolean",
|
|
@@ -14,5 +27,8 @@
|
|
|
14
27
|
],
|
|
15
28
|
"author": "Jack van der Bilt",
|
|
16
29
|
"license": "MIT",
|
|
17
|
-
"description": ""
|
|
30
|
+
"description": "",
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"tsup": "^8.3.5"
|
|
33
|
+
}
|
|
18
34
|
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export class FastBooleanArray {
|
|
2
|
+
public size: number;
|
|
3
|
+
private buffer: Uint8Array;
|
|
4
|
+
|
|
5
|
+
constructor(size: number) {
|
|
6
|
+
this.size = size;
|
|
7
|
+
this.buffer = new Uint8Array(Math.ceil(size / 8)); // Allocate memory
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
set(input: number, value: boolean) {
|
|
11
|
+
if (value) {
|
|
12
|
+
this.buffer[input >> 3] |= 1 << (input & 7); // Set bit
|
|
13
|
+
} else {
|
|
14
|
+
this.buffer[input >> 3] &= ~(1 << (input & 7)); // Clear bit
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
get(input: number) {
|
|
19
|
+
return (this.buffer[input >> 3] & (1 << input % 8)) !== 0; // Check bit
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get length() {
|
|
23
|
+
return this.size;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
set length(value: number) {
|
|
27
|
+
throw new Error("Setting the length on BooleanArray's is not supported");
|
|
28
|
+
}
|
|
29
|
+
}
|