Skip to content

Commit 429b128

Browse files
bung87Araq
andauthored
change mimedb stroe stringtable to orderedtable (#18065)
* change mimedb stroe stringtable to orderedtable * Update lib/pure/mimetypes.nim Co-authored-by: Andreas Rumpf <[email protected]>
1 parent 2ec52fa commit 429b128

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

lib/pure/mimetypes.nim

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ runnableExamples:
2626
doAssert m.getMimetype("fakext") == "text/fakelang"
2727
doAssert m.getMimetype("FaKeXT") == "text/fakelang"
2828

29-
import strtabs
29+
import tables
3030
from strutils import startsWith, toLowerAscii, strip
3131

3232
type
3333
MimeDB* = object
34-
mimes: StringTableRef
34+
mimes: OrderedTableRef[string, string]
3535

3636
const mimes* = {
3737
"123": "application/vnd.lotus-1-2-3",
@@ -1903,7 +1903,8 @@ const mimes* = {
19031903
func newMimetypes*(): MimeDB =
19041904
## Creates a new Mimetypes database. The database will contain the most
19051905
## common mimetypes.
1906-
result.mimes = mimes.newStringTable()
1906+
{.cast(noSideEffect).}:
1907+
result.mimes = mimes.newOrderedTable()
19071908

19081909
func getMimetype*(mimedb: MimeDB, ext: string, default = "text/plain"): string =
19091910
## Gets mimetype which corresponds to `ext`. Returns `default` if `ext`

tests/stdlib/tmimetypes.nim

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import std/mimetypes
66
template main() =
77
var m = newMimetypes()
88
doAssert m.getMimetype("mp4") == "video/mp4"
9+
doAssert m.getExt("application/json") == "json"
910
# see also `runnableExamples`.
1011
# xxx we should have a way to avoid duplicating code between runnableExamples and tests
1112

0 commit comments

Comments
 (0)