From 7db35956e11f25849bcd984c0b285ca788da9d43 Mon Sep 17 00:00:00 2001 From: Eugene Date: Mon, 1 Dec 2025 17:46:25 +0300 Subject: [PATCH] markdown update --- README.md | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index d12fd32..a7e4b6f 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,12 @@ This TypeScript library provides a bitmap implementation (`Bitmap`) that allows #### Features -- **Set Operations:** Supports set, remove, contains, and clear operations on the bitmap. -- **Logical Operations:** Provides AND, AND-NOT, OR, and XOR operations between bitmaps. -- **Iteration and Filtering:** Includes range iteration and filtering based on user-defined conditions. -- **Counting and Extremes:** Methods to count set bits (`count`), find the minimum and maximum set bit (`min`, `max`), as well as the minimum and maximum unset bit (`minZero`, `maxZero`). +- **Set Operations:** `set`, `remove`, `contains`, and `clear` operations on the bitmap. +- **Logical Operations:** `and`, `andNot`, `or`, and `xor` operations between bitmaps. +- **Iteration and Filtering:** `range` iteration, generator-based iteration via `[Symbol.iterator]`, and `filter` based on user-defined conditions. +- **Count and Extremes:** Methods to count set bits (`count`), find the minimum and maximum set bit (`min`, `max`), as well as the minimum and maximum unset bit (`minZero`, `maxZero`). - **Cloning:** Supports cloning of the bitmap instance. +- **Iterable Support:** Can be used directly in `for...of` loops and spread syntax (`[...bitmap]`) for convenient iteration over set bits. #### Installation @@ -18,7 +19,7 @@ You can install the library via npm: ```bash npm install bitmap-index -``` +```` #### Usage Example @@ -46,12 +47,20 @@ const andResult = bitmap.and(otherBitmap); // Bitmap with bits [5, 10] const orResult = bitmap.or(otherBitmap); // Bitmap with bits [2, 5, 10] const xorResult = bitmap.xor(otherBitmap); // Bitmap with bits [2] -// Iterate over set bits within a range +// Iterate over set bits using range bitmap.range((x) => { console.log(`Bit ${x} is set`); return true; // Continue iterating }); +// Iterate using for...of (generator) +for (const bit of bitmap) { + console.log(`Iterated bit: ${bit}`); +} + +// Spread operator +const bitsArray = [...bitmap]; // [2, 5, 10] + // Filter based on a condition bitmap.filter((x) => x % 2 === 0); // Remove odd-numbered bits @@ -67,19 +76,18 @@ bitmap.clear(); // Clone the bitmap const clonedBitmap = bitmap.clone(); - -// Further operations can be performed on clonedBitmap... ``` #### API Documentation -- **Bitmap Class** - - **Constructor:** `new Bitmap(size: number = 32)` - - **Set Operations:** `set(x: number)`, `remove(x: number)`, `contains(x: number)`, `clear()` - - **Logical Operations:** `and(bitmap: Bitmap)`, `andNot(bitmap: Bitmap)`, `or(bitmap: Bitmap)`, `xor(bitmap: Bitmap)` - - **Iteration and Filtering:** `range(fn: (x: number) => boolean)`, `filter(fn: (x: number) => boolean)` - - **Count and Extremes:** `count()`, `min()`, `max()`, `minZero()`, `maxZero()` - - **Cloning:** `clone(): Bitmap` +* **Bitmap Class** + + * **Constructor:** `new Bitmap(size: number = 32)` + * **Set Operations:** `set(x: number)`, `remove(x: number)`, `contains(x: number)`, `clear()` + * **Logical Operations:** `and(bitmap: Bitmap)`, `andNot(bitmap: Bitmap)`, `or(bitmap: Bitmap)`, `xor(bitmap: Bitmap)` + * **Iteration and Filtering:** `range(fn: (x: number) => boolean)`, `filter(fn: (x: number) => boolean)`, `[Symbol.iterator](): Iterator` + * **Count and Extremes:** `count()`, `min()`, `max()`, `minZero()`, `maxZero()` + * **Cloning:** `clone(): Bitmap` #### Note @@ -89,8 +97,7 @@ This library is designed for bitmap indexing operations and is not related to im Feel free to contribute, report issues, or suggest improvements on [GitHub](https://github.com/yazmeyaa/bitmap-index). - [npm-image]: https://img.shields.io/npm/v/bitmap-index.svg?style=flat-square [npm-url]: https://npmjs.org/package/bitmap-index [downloads-image]: https://img.shields.io/npm/dm/bitmap-index.svg?style=flat-square -[downloads-url]: https://npmjs.org/package/bitmap-index \ No newline at end of file +[downloads-url]: https://npmjs.org/package/bitmap-index