<Entries extends Array<readonly [any, any]>>(
...entries: Entries
): MutableHashMap<
Entries[number] extends readonly [infer K, any] ? K : never,
Entries[number] extends readonly [any, infer V] ? V : never
>Creates a MutableHashMap from a variable number of key-value pairs.
When to use
Use to create a mutable hash map from explicit entries known at the call site.
Example (Creating a map from entries)
import { MutableHashMap } from "effect"
const map = MutableHashMap.make(
["key1", 42],
["key2", 100],
["key3", 200]
)
console.log(MutableHashMap.get(map, "key1")) // Some(42)
console.log(MutableHashMap.size(map)) // 3export const const make: <
Entries extends Array<readonly [any, any]>
>(
...entries: Entries
) => MutableHashMap<
Entries[number] extends readonly [infer K, any]
? K
: never,
Entries[number] extends readonly [any, infer V]
? V
: never
>
Creates a MutableHashMap from a variable number of key-value pairs.
When to use
Use to create a mutable hash map from explicit entries known at the call site.
Example (Creating a map from entries)
import { MutableHashMap } from "effect"
const map = MutableHashMap.make(
["key1", 42],
["key2", 100],
["key3", 200]
)
console.log(MutableHashMap.get(map, "key1")) // Some(42)
console.log(MutableHashMap.size(map)) // 3
make: <function (type parameter) Entries in <Entries extends Array<readonly [any, any]>>(...entries: Entries): MutableHashMap<Entries[number] extends readonly [infer K, any] ? K : never, Entries[number] extends readonly [any, infer V] ? V : never>Entries extends interface Array<T>Array<readonly [any, any]>>(
...entries: Entries extends Array<readonly [any, any]>entries: function (type parameter) Entries in <Entries extends Array<readonly [any, any]>>(...entries: Entries): MutableHashMap<Entries[number] extends readonly [infer K, any] ? K : never, Entries[number] extends readonly [any, infer V] ? V : never>Entries
) => interface MutableHashMap<out K, out V>A mutable hash map that stores key-value pairs and supports both referential
and Effect structural equality.
When to use
Use as a mutable key-value map when in-place updates are acceptable and keys
may rely on Effect structural equality.
Details
Operations mutate the map in place. Keys that implement Equal / Hash can
be looked up structurally; other keys use normal JavaScript reference or
primitive equality.
Example (Using a mutable hash map)
import { MutableHashMap } from "effect"
// Create a mutable hash map with string keys and number values
const map: MutableHashMap.MutableHashMap<string, number> = MutableHashMap
.empty()
// Add some data
MutableHashMap.set(map, "count", 42)
MutableHashMap.set(map, "total", 100)
// Use as iterable
for (const [key, value] of map) {
console.log(`${key}: ${value}`)
}
// Output:
// count: 42
// total: 100
// Convert to array
const entries = Array.from(map)
console.log(entries) // [["count", 42], ["total", 100]]
MutableHashMap<
function (type parameter) Entries in <Entries extends Array<readonly [any, any]>>(...entries: Entries): MutableHashMap<Entries[number] extends readonly [infer K, any] ? K : never, Entries[number] extends readonly [any, infer V] ? V : never>Entries[number] extends readonly [infer function (type parameter) KK, any] ? function (type parameter) KK : never,
function (type parameter) Entries in <Entries extends Array<readonly [any, any]>>(...entries: Entries): MutableHashMap<Entries[number] extends readonly [infer K, any] ? K : never, Entries[number] extends readonly [any, infer V] ? V : never>Entries[number] extends readonly [any, infer function (type parameter) VV] ? function (type parameter) VV : never
> = (...entries: Entries extends Array<readonly [any, any]>entries) => const fromIterable: <K, V>(
entries: Iterable<readonly [K, V]>
) => MutableHashMap<K, V>
Creates a MutableHashMap from an iterable collection of key-value pairs.
When to use
Use to create a mutable hash map from an existing iterable of entries.
Example (Creating a map from an iterable)
import { MutableHashMap } from "effect"
const entries = [
["apple", 1],
["banana", 2],
["cherry", 3]
] as const
const map = MutableHashMap.fromIterable(entries)
console.log(MutableHashMap.get(map, "banana")) // Some(2)
console.log(MutableHashMap.size(map)) // 3
// Works with any iterable
const fromMap = MutableHashMap.fromIterable(new Map([["x", 10], ["y", 20]]))
console.log(MutableHashMap.get(fromMap, "x")) // Some(10)
fromIterable(entries: Entries extends Array<readonly [any, any]>entries)