diff --git a/lib/pure/collections/tables.nim b/lib/pure/collections/tables.nim index 1352bdf68926e..967a6726f5377 100644 --- a/lib/pure/collections/tables.nim +++ b/lib/pure/collections/tables.nim @@ -307,6 +307,22 @@ proc initTable*[A, B](initialSize = defaultInitialSize): Table[A, B] = b = initTable[char, seq[int]]() initImpl(result, initialSize) +proc `[]=`*[A, B](t: var Table[A, B], key: A, val: B) = + ## Inserts a ``(key, value)`` pair into ``t``. + ## + ## See also: + ## * `[] proc<#[],Table[A,B],A>`_ for retrieving a value of a key + ## * `hasKeyOrPut proc<#hasKeyOrPut,Table[A,B],A,B>`_ + ## * `mgetOrPut proc<#mgetOrPut,Table[A,B],A,B>`_ + ## * `del proc<#del,Table[A,B],A>`_ for removing a key from the table + runnableExamples: + var a = initTable[char, int]() + a['x'] = 7 + a['y'] = 33 + doAssert a == {'x': 7, 'y': 33}.toTable + + putImpl(enlarge) + proc toTable*[A, B](pairs: openArray[(A, B)]): Table[A, B] = ## Creates a new hash table that contains the given ``pairs``. ## @@ -362,22 +378,6 @@ proc `[]`*[A, B](t: var Table[A, B], key: A): var B = ## the table get(t, key) -proc `[]=`*[A, B](t: var Table[A, B], key: A, val: B) = - ## Inserts a ``(key, value)`` pair into ``t``. - ## - ## See also: - ## * `[] proc<#[],Table[A,B],A>`_ for retrieving a value of a key - ## * `hasKeyOrPut proc<#hasKeyOrPut,Table[A,B],A,B>`_ - ## * `mgetOrPut proc<#mgetOrPut,Table[A,B],A,B>`_ - ## * `del proc<#del,Table[A,B],A>`_ for removing a key from the table - runnableExamples: - var a = initTable[char, int]() - a['x'] = 7 - a['y'] = 33 - doAssert a == {'x': 7, 'y': 33}.toTable - - putImpl(enlarge) - proc hasKey*[A, B](t: Table[A, B], key: A): bool = ## Returns true if ``key`` is in the table ``t``. ## @@ -1285,6 +1285,22 @@ proc initOrderedTable*[A, B](initialSize = defaultInitialSize): OrderedTable[A, b = initOrderedTable[char, seq[int]]() initImpl(result, initialSize) +proc `[]=`*[A, B](t: var OrderedTable[A, B], key: A, val: B) = + ## Inserts a ``(key, value)`` pair into ``t``. + ## + ## See also: + ## * `[] proc<#[],OrderedTable[A,B],A>`_ for retrieving a value of a key + ## * `hasKeyOrPut proc<#hasKeyOrPut,OrderedTable[A,B],A,B>`_ + ## * `mgetOrPut proc<#mgetOrPut,OrderedTable[A,B],A,B>`_ + ## * `del proc<#del,OrderedTable[A,B],A>`_ for removing a key from the table + runnableExamples: + var a = initOrderedTable[char, int]() + a['x'] = 7 + a['y'] = 33 + doAssert a == {'x': 7, 'y': 33}.toOrderedTable + + putImpl(enlarge) + proc toOrderedTable*[A, B](pairs: openArray[(A, B)]): OrderedTable[A, B] = ## Creates a new ordered hash table that contains the given ``pairs``. ## @@ -1342,22 +1358,6 @@ proc `[]`*[A, B](t: var OrderedTable[A, B], key: A): var B = ## key is in the table get(t, key) -proc `[]=`*[A, B](t: var OrderedTable[A, B], key: A, val: B) = - ## Inserts a ``(key, value)`` pair into ``t``. - ## - ## See also: - ## * `[] proc<#[],OrderedTable[A,B],A>`_ for retrieving a value of a key - ## * `hasKeyOrPut proc<#hasKeyOrPut,OrderedTable[A,B],A,B>`_ - ## * `mgetOrPut proc<#mgetOrPut,OrderedTable[A,B],A,B>`_ - ## * `del proc<#del,OrderedTable[A,B],A>`_ for removing a key from the table - runnableExamples: - var a = initOrderedTable[char, int]() - a['x'] = 7 - a['y'] = 33 - doAssert a == {'x': 7, 'y': 33}.toOrderedTable - - putImpl(enlarge) - proc hasKey*[A, B](t: OrderedTable[A, B], key: A): bool = ## Returns true if ``key`` is in the table ``t``. ##