From 35d284f030071dbb95a2ceca73b56862384b1321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20BECHER?= Date: Mon, 13 May 2024 22:24:09 +0200 Subject: [PATCH] add equality map size --- src/equality-map.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/equality-map.ts b/src/equality-map.ts index 32cc76c..7c5a869 100644 --- a/src/equality-map.ts +++ b/src/equality-map.ts @@ -2,6 +2,7 @@ import { Equater, MaybeAsyncEquater } from "./types.js"; import { asAsyncGenerator } from "./utils.js"; export interface EqualityMap extends Iterable<[K, V]> { + readonly size: number; get(key: K): V | undefined; set(key: K, value: V): V | undefined; contains(key: K): boolean; @@ -12,6 +13,10 @@ export interface EqualityMap extends Iterable<[K, V]> { class NativeEqualityMap implements EqualityMap { readonly #map = new Map(); + get size() { + return this.#map.size; + } + get(key: K) { return this.#map.get(key); } @@ -49,6 +54,10 @@ class CustomEqualityMap implements EqualityMap { this.#keyComparer = keyComparer; } + get size() { + return this.#list.length; + } + get(key: K) { for (const entry of this.#list) { if (this.#keyComparer(key, entry[0])) {