TMap overview
Added in v2.0.0
Table of contents
constructors
empty
Makes an empty TMap
.
Signature
export declare const empty: <K, V>() => STM.STM<TMap<K, V>>
Added in v2.0.0
fromIterable
Creates a new TMap
from an iterable collection of key/value pairs.
Signature
export declare const fromIterable: <K, V>(iterable: Iterable<readonly [K, V]>) => STM.STM<TMap<K, V>>
Added in v2.0.0
make
Makes a new TMap
that is initialized with specified values.
Signature
export declare const make: <K, V>(...entries: Array<readonly [K, V]>) => STM.STM<TMap<K, V>>
Added in v2.0.0
destructors
toArray
Collects all bindings into an Array
.
Signature
export declare const toArray: <K, V>(self: TMap<K, V>) => STM.STM<Array<[K, V]>>
Added in v2.0.0
toChunk
Collects all bindings into a Chunk
.
Signature
export declare const toChunk: <K, V>(self: TMap<K, V>) => STM.STM<Chunk.Chunk<[K, V]>>
Added in v2.0.0
toHashMap
Collects all bindings into a HashMap
.
Signature
export declare const toHashMap: <K, V>(self: TMap<K, V>) => STM.STM<HashMap.HashMap<K, V>>
Added in v2.0.0
toMap
Collects all bindings into a Map
.
Signature
export declare const toMap: <K, V>(self: TMap<K, V>) => STM.STM<ReadonlyMap<K, V>>
Added in v2.0.0
elements
find
Finds the key/value pair matching the specified predicate, and uses the provided function to extract a value out of it.
Signature
export declare const find: {
<K, V, A>(pf: (key: K, value: V) => Option.Option<A>): (self: TMap<K, V>) => STM.STM<Option.Option<A>>
<K, V, A>(self: TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>): STM.STM<Option.Option<A>>
}
Added in v2.0.0
findAll
Finds all the key/value pairs matching the specified predicate, and uses the provided function to extract values out them.
Signature
export declare const findAll: {
<K, V, A>(pf: (key: K, value: V) => Option.Option<A>): (self: TMap<K, V>) => STM.STM<Array<A>>
<K, V, A>(self: TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>): STM.STM<Array<A>>
}
Added in v2.0.0
findAllSTM
Finds all the key/value pairs matching the specified predicate, and uses the provided effectful function to extract values out of them..
Signature
export declare const findAllSTM: {
<K, V, A, E, R>(
pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
): (self: TMap<K, V>) => STM.STM<Array<A>, E, R>
<K, V, A, E, R>(self: TMap<K, V>, pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>): STM.STM<Array<A>, E, R>
}
Added in v2.0.0
findSTM
Finds the key/value pair matching the specified predicate, and uses the provided effectful function to extract a value out of it.
Signature
export declare const findSTM: {
<K, V, A, E, R>(
f: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
): (self: TMap<K, V>) => STM.STM<Option.Option<A>, E, R>
<K, V, A, E, R>(
self: TMap<K, V>,
f: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
): STM.STM<Option.Option<A>, E, R>
}
Added in v2.0.0
forEach
Atomically performs transactional-effect for each binding present in map.
Signature
export declare const forEach: {
<K, V, X, E, R>(f: (key: K, value: V) => STM.STM<X, E, R>): (self: TMap<K, V>) => STM.STM<void, E, R>
<K, V, X, E, R>(self: TMap<K, V>, f: (key: K, value: V) => STM.STM<X, E, R>): STM.STM<void, E, R>
}
Added in v2.0.0
get
Retrieves value associated with given key.
Signature
export declare const get: {
<K>(key: K): <V>(self: TMap<K, V>) => STM.STM<Option.Option<V>>
<K, V>(self: TMap<K, V>, key: K): STM.STM<Option.Option<V>>
}
Added in v2.0.0
getOrElse
Retrieves value associated with given key or default value, in case the key isn’t present.
Signature
export declare const getOrElse: {
<K, V>(key: K, fallback: LazyArg<V>): (self: TMap<K, V>) => STM.STM<V>
<K, V>(self: TMap<K, V>, key: K, fallback: LazyArg<V>): STM.STM<V>
}
Added in v2.0.0
has
Tests whether or not map contains a key.
Signature
export declare const has: {
<K>(key: K): <V>(self: TMap<K, V>) => STM.STM<boolean>
<K, V>(self: TMap<K, V>, key: K): STM.STM<boolean>
}
Added in v2.0.0
keys
Collects all keys stored in map.
Signature
export declare const keys: <K, V>(self: TMap<K, V>) => STM.STM<Array<K>>
Added in v2.0.0
values
Collects all values stored in map.
Signature
export declare const values: <K, V>(self: TMap<K, V>) => STM.STM<Array<V>>
Added in v2.0.0
folding
reduce
Atomically folds using a pure function.
Signature
export declare const reduce: {
<Z, K, V>(zero: Z, f: (acc: Z, value: V, key: K) => Z): (self: TMap<K, V>) => STM.STM<Z>
<K, V, Z>(self: TMap<K, V>, zero: Z, f: (acc: Z, value: V, key: K) => Z): STM.STM<Z>
}
Added in v2.0.0
reduceSTM
Atomically folds using a transactional function.
Signature
export declare const reduceSTM: {
<Z, V, K, R, E>(zero: Z, f: (acc: Z, value: V, key: K) => STM.STM<Z, E, R>): (self: TMap<K, V>) => STM.STM<Z, E, R>
<Z, V, K, R, E>(self: TMap<K, V>, zero: Z, f: (acc: Z, value: V, key: K) => STM.STM<Z, E, R>): STM.STM<Z, E, R>
}
Added in v2.0.0
getters
isEmpty
Tests if the map is empty or not.
Signature
export declare const isEmpty: <K, V>(self: TMap<K, V>) => STM.STM<boolean>
Added in v2.0.0
size
Returns the number of bindings.
Signature
export declare const size: <K, V>(self: TMap<K, V>) => STM.STM<number>
Added in v2.0.0
models
TMap (interface)
Transactional map implemented on top of TRef
and TArray
. Resolves conflicts via chaining.
Signature
export interface TMap<in out K, in out V> extends TMap.Variance<K, V> {}
Added in v2.0.0
mutations
merge
If the key is not already associated with a value, stores the provided value, otherwise merge the existing value with the new one using function f
and store the result.
Signature
export declare const merge: {
<K, V>(key: K, value: V, f: (x: V, y: V) => V): (self: TMap<K, V>) => STM.STM<V>
<K, V>(self: TMap<K, V>, key: K, value: V, f: (x: V, y: V) => V): STM.STM<V>
}
Added in v2.0.0
remove
Removes binding for given key.
Signature
export declare const remove: {
<K>(key: K): <V>(self: TMap<K, V>) => STM.STM<void>
<K, V>(self: TMap<K, V>, key: K): STM.STM<void>
}
Added in v2.0.0
removeAll
Deletes all entries associated with the specified keys.
Signature
export declare const removeAll: {
<K>(keys: Iterable<K>): <V>(self: TMap<K, V>) => STM.STM<void>
<K, V>(self: TMap<K, V>, keys: Iterable<K>): STM.STM<void>
}
Added in v2.0.0
removeIf
Removes entries from a TMap
that satisfy the specified predicate and returns the removed entries (or void
if discard = true
).
Signature
export declare const removeIf: {
<K, V>(
predicate: (key: K, value: V) => boolean,
options: { readonly discard: true }
): (self: TMap<K, V>) => STM.STM<void>
<K, V>(
predicate: (key: K, value: V) => boolean,
options?: { readonly discard: false }
): (self: TMap<K, V>) => STM.STM<Array<[K, V]>>
<K, V>(self: TMap<K, V>, predicate: (key: K, value: V) => boolean, options: { readonly discard: true }): STM.STM<void>
<K, V>(
self: TMap<K, V>,
predicate: (key: K, value: V) => boolean,
options?: { readonly discard: false }
): STM.STM<Array<[K, V]>>
}
Added in v2.0.0
retainIf
Retains entries in a TMap
that satisfy the specified predicate and returns the removed entries (or void
if discard = true
).
Signature
export declare const retainIf: {
<K, V>(
predicate: (key: K, value: V) => boolean,
options: { readonly discard: true }
): (self: TMap<K, V>) => STM.STM<void>
<K, V>(
predicate: (key: K, value: V) => boolean,
options?: { readonly discard: false }
): (self: TMap<K, V>) => STM.STM<Array<[K, V]>>
<K, V>(self: TMap<K, V>, predicate: (key: K, value: V) => boolean, options: { readonly discard: true }): STM.STM<void>
<K, V>(
self: TMap<K, V>,
predicate: (key: K, value: V) => boolean,
options?: { readonly discard: false }
): STM.STM<Array<[K, V]>>
}
Added in v2.0.0
set
Stores new binding into the map.
Signature
export declare const set: {
<K, V>(key: K, value: V): (self: TMap<K, V>) => STM.STM<void>
<K, V>(self: TMap<K, V>, key: K, value: V): STM.STM<void>
}
Added in v2.0.0
setIfAbsent
Stores new binding in the map if it does not already exist.
Signature
export declare const setIfAbsent: {
<K, V>(key: K, value: V): (self: TMap<K, V>) => STM.STM<void>
<K, V>(self: TMap<K, V>, key: K, value: V): STM.STM<void>
}
Added in v2.0.0
takeFirst
Takes the first matching value, or retries until there is one.
Signature
export declare const takeFirst: {
<K, V, A>(pf: (key: K, value: V) => Option.Option<A>): (self: TMap<K, V>) => STM.STM<A>
<K, V, A>(self: TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>): STM.STM<A>
}
Added in v2.0.0
takeFirstSTM
Takes the first matching value, or retries until there is one.
Signature
export declare const takeFirstSTM: {
<K, V, A, E, R>(pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>): (self: TMap<K, V>) => STM.STM<A, E, R>
<K, V, A, E, R>(self: TMap<K, V>, pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>): STM.STM<A, E, R>
}
Added in v2.0.0
takeSome
Takes all matching values, or retries until there is at least one.
Signature
export declare const takeSome: {
<K, V, A>(pf: (key: K, value: V) => Option.Option<A>): (self: TMap<K, V>) => STM.STM<[A, ...Array<A>]>
<K, V, A>(self: TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>): STM.STM<[A, ...Array<A>]>
}
Added in v2.0.0
takeSomeSTM
Takes all matching values, or retries until there is at least one.
Signature
export declare const takeSomeSTM: {
<K, V, A, E, R>(
pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
): (self: TMap<K, V>) => STM.STM<[A, ...Array<A>], E, R>
<K, V, A, E, R>(
self: TMap<K, V>,
pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
): STM.STM<[A, ...Array<A>], E, R>
}
Added in v2.0.0
transform
Atomically updates all bindings using a pure function.
Signature
export declare const transform: {
<K, V>(f: (key: K, value: V) => readonly [K, V]): (self: TMap<K, V>) => STM.STM<void>
<K, V>(self: TMap<K, V>, f: (key: K, value: V) => readonly [K, V]): STM.STM<void>
}
Added in v2.0.0
transformSTM
Atomically updates all bindings using a transactional function.
Signature
export declare const transformSTM: {
<K, V, R, E>(f: (key: K, value: V) => STM.STM<readonly [K, V], E, R>): (self: TMap<K, V>) => STM.STM<void, E, R>
<K, V, R, E>(self: TMap<K, V>, f: (key: K, value: V) => STM.STM<readonly [K, V], E, R>): STM.STM<void, E, R>
}
Added in v2.0.0
transformValues
Atomically updates all values using a pure function.
Signature
export declare const transformValues: {
<V>(f: (value: V) => V): <K>(self: TMap<K, V>) => STM.STM<void>
<K, V>(self: TMap<K, V>, f: (value: V) => V): STM.STM<void>
}
Added in v2.0.0
transformValuesSTM
Atomically updates all values using a transactional function.
Signature
export declare const transformValuesSTM: {
<V, R, E>(f: (value: V) => STM.STM<V, E, R>): <K>(self: TMap<K, V>) => STM.STM<void, E, R>
<K, V, R, E>(self: TMap<K, V>, f: (value: V) => STM.STM<V, E, R>): STM.STM<void, E, R>
}
Added in v2.0.0
updateWith
Updates the mapping for the specified key with the specified function, which takes the current value of the key as an input, if it exists, and either returns Some
with a new value to indicate to update the value in the map or None
to remove the value from the map. Returns Some
with the updated value or None
if the value was removed from the map.
Signature
export declare const updateWith: {
<K, V>(key: K, f: (value: Option.Option<V>) => Option.Option<V>): (self: TMap<K, V>) => STM.STM<Option.Option<V>>
<K, V>(self: TMap<K, V>, key: K, f: (value: Option.Option<V>) => Option.Option<V>): STM.STM<Option.Option<V>>
}
Added in v2.0.0
symbols
TMapTypeId
Signature
export declare const TMapTypeId: typeof TMapTypeId
Added in v2.0.0
TMapTypeId (type alias)
Signature
export type TMapTypeId = typeof TMapTypeId
Added in v2.0.0
utils
TMap (namespace)
Added in v2.0.0
Variance (interface)
Signature
export interface Variance<in out K, in out V> {
readonly [TMapTypeId]: {
readonly _K: Types.Invariant<K>
readonly _V: Types.Invariant<V>
}
}
Added in v2.0.0