From cdfc886f88cc95a8dc05e2211d1030b146a521f5 Mon Sep 17 00:00:00 2001 From: ringabout <43030857+ringabout@users.noreply.github.com> Date: Fri, 31 May 2024 17:07:48 +0800 Subject: fixes #23663; Add hash() for Path (#23664) fixes #23663 --- lib/std/paths.nim | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'lib/std/paths.nim') diff --git a/lib/std/paths.nim b/lib/std/paths.nim index ac2e5cea4..664dedd31 100644 --- a/lib/std/paths.nim +++ b/lib/std/paths.nim @@ -9,7 +9,7 @@ export osseps import std/envvars import std/private/osappdirs -import std/pathnorm +import std/[pathnorm, hashes, sugar, strutils] from std/private/ospaths2 import joinPath, splitPath, ReadDirEffect, WriteDirEffect, @@ -25,6 +25,13 @@ export ReadDirEffect, WriteDirEffect type Path* = distinct string +func hash*(x: Path): Hash = + let x = x.string.dup(normalizePath) + if FileSystemCaseSensitive: + result = x.hash + else: + result = x.toLowerAscii.hash + template `$`*(x: Path): string = string(x) -- cgit 1.4.1-2-gfad0