add equality map size
This commit is contained in:
@@ -2,6 +2,7 @@ import { Equater, MaybeAsyncEquater } from "./types.js";
|
|||||||
import { asAsyncGenerator } from "./utils.js";
|
import { asAsyncGenerator } from "./utils.js";
|
||||||
|
|
||||||
export interface EqualityMap<K, V> extends Iterable<[K, V]> {
|
export interface EqualityMap<K, V> extends Iterable<[K, V]> {
|
||||||
|
readonly size: number;
|
||||||
get(key: K): V | undefined;
|
get(key: K): V | undefined;
|
||||||
set(key: K, value: V): V | undefined;
|
set(key: K, value: V): V | undefined;
|
||||||
contains(key: K): boolean;
|
contains(key: K): boolean;
|
||||||
@@ -12,6 +13,10 @@ export interface EqualityMap<K, V> extends Iterable<[K, V]> {
|
|||||||
class NativeEqualityMap<K, V> implements EqualityMap<K, V> {
|
class NativeEqualityMap<K, V> implements EqualityMap<K, V> {
|
||||||
readonly #map = new Map<K, V>();
|
readonly #map = new Map<K, V>();
|
||||||
|
|
||||||
|
get size() {
|
||||||
|
return this.#map.size;
|
||||||
|
}
|
||||||
|
|
||||||
get(key: K) {
|
get(key: K) {
|
||||||
return this.#map.get(key);
|
return this.#map.get(key);
|
||||||
}
|
}
|
||||||
@@ -49,6 +54,10 @@ class CustomEqualityMap<K, V> implements EqualityMap<K, V> {
|
|||||||
this.#keyComparer = keyComparer;
|
this.#keyComparer = keyComparer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get size() {
|
||||||
|
return this.#list.length;
|
||||||
|
}
|
||||||
|
|
||||||
get(key: K) {
|
get(key: K) {
|
||||||
for (const entry of this.#list) {
|
for (const entry of this.#list) {
|
||||||
if (this.#keyComparer(key, entry[0])) {
|
if (this.#keyComparer(key, entry[0])) {
|
||||||
|
|||||||
Reference in New Issue
Block a user