diff options
author | Andy Davidoff <disruptek@users.noreply.github.com> | 2019-12-09 00:58:36 -0500 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-12-09 06:58:36 +0100 |
commit | a3d45d0c1b20982f79b384ddc9af27b745329596 (patch) | |
tree | 98584e346c69d7684c28d695025a6e324fcdc718 | |
parent | a02d043b5850d9d6ca6584ce513b72ddedf2ef04 (diff) | |
download | Nim-a3d45d0c1b20982f79b384ddc9af27b745329596.tar.gz |
add a StringTable.clear that requires no mode specification (#12853)
* add clear overload, test, changelog * add since annotation
-rw-r--r-- | changelog.md | 1 | ||||
-rw-r--r-- | lib/pure/strtabs.nim | 6 | ||||
-rw-r--r-- | tests/stdlib/tstrtabs.nim | 3 |
3 files changed, 9 insertions, 1 deletions
diff --git a/changelog.md b/changelog.md index d736400f9..18eece00c 100644 --- a/changelog.md +++ b/changelog.md @@ -34,6 +34,7 @@ delimiter instead of '{' and '}'. - introduced new procs in `tables.nim`: `OrderedTable.pop`, `CountTable.del`, `CountTable.pop`, `Table.pop` +- To `strtabs.nim`, added `StringTable.clear` overload that reuses the existing mode. - Added `sugar.outplace` for turning in-place algorithms like `sort` and `shuffle` into diff --git a/lib/pure/strtabs.nim b/lib/pure/strtabs.nim index 4e40aab33..3af21431e 100644 --- a/lib/pure/strtabs.nim +++ b/lib/pure/strtabs.nim @@ -308,7 +308,7 @@ proc getValue(t: StringTableRef, flags: set[FormatFlag], key: string): string = proc clear*(s: StringTableRef, mode: StringTableMode) {. rtlFunc, extern: "nst$1".} = - ## Resets a string table to be empty again. + ## Resets a string table to be empty again, perhaps altering the mode. ## ## See also: ## * `del proc <#del,StringTableRef,string>`_ for removing a key from the table @@ -324,6 +324,10 @@ proc clear*(s: StringTableRef, mode: StringTableMode) {. for i in 0..<s.data.len: s.data[i].hasValue = false +proc clear*(s: StringTableRef) {.since: (1, 1).} = + ## Resets a string table to be empty again without changing the mode. + s.clear(s.mode) + proc del*(t: StringTableRef, key: string) = ## Removes `key` from `t`. ## diff --git a/tests/stdlib/tstrtabs.nim b/tests/stdlib/tstrtabs.nim index 18ed57167..5d7e8c762 100644 --- a/tests/stdlib/tstrtabs.nim +++ b/tests/stdlib/tstrtabs.nim @@ -82,6 +82,7 @@ key_7: value7 key_80: value80 key_8: value8 key_9: value9 +length of table 0 length of table 81 value1 = value2 ''' @@ -99,3 +100,5 @@ for key, val in pairs(tab): writeLine(stdout, "length of table ", $tab.len) writeLine(stdout, `%`("$key1 = $key2", tab, {useEnvironment})) +tab.clear +writeLine(stdout, "length of table ", $tab.len) |