Class pl.OrderedMap
OrderedMap, a map which preserves ordering.
Derived from pl.Map.
Dependencies: pl.utils, pl.tablex, pl.class, pl.List, pl.Map
Methods
pl.orderedmap:_init (t) | construct an OrderedMap. |
pl.orderedmap:update (t) | update an OrderedMap using a table. |
pl.orderedmap:set (key, val) | set the key's value. |
pl.orderedmap:insert (pos, key, val) | insert a key/value pair before a given position. |
pl.orderedmap:keys () | return the keys in order. |
pl.orderedmap:values () | return the values in order. |
pl.orderedmap:sort (cmp) | sort the keys. |
pl.orderedmap:iter () | iterate over key-value pairs in order. |
Metamethods
pl.orderedmap:__pairs () | iterate over an ordered map (5.2). |
pl.orderedmap:__tostring () | string representation of an ordered map. |
Methods
- pl.orderedmap:_init (t)
-
construct an OrderedMap.
Will throw an error if the argument is bad.
Parameters:
- t optional initialization table, same as for OrderedMap:update
- pl.orderedmap:update (t)
-
update an OrderedMap using a table.
If the table is itself an OrderedMap, then its entries will be appended.
if it s a table of the form
{{key1=val1},{key2=val2},...}
these will be appended.Otherwise, it is assumed to be a map-like table, and order of extra entries is arbitrary.
Parameters:
- t table a table.
Returns:
- the map, or nil in case of error
- the error message
- pl.orderedmap:set (key, val)
-
set the key's value. This key will be appended at the end of the map.
If the value is nil, then the key is removed.
Parameters:
- key the key
- val the value
Returns:
-
the map
- pl.orderedmap:insert (pos, key, val)
-
insert a key/value pair before a given position.
Note: if the map already contains the key, then this effectively
moves the item to the new position by first removing at the old position.
Has no effect if the key does not exist and val is nil
Parameters:
- pos integer a position starting at 1
- key the key
- val the value; if nil use the old value
- pl.orderedmap:keys ()
-
return the keys in order.
(Not a copy!)
Returns:
-
List
- pl.orderedmap:values ()
-
return the values in order.
this is relatively expensive.
Returns:
-
List
- pl.orderedmap:sort (cmp)
-
sort the keys.
Parameters:
- cmp function a comparison function as for table.sort
Returns:
-
the map
- pl.orderedmap:iter ()
- iterate over key-value pairs in order.