diff --git a/src/__comm__/_str_hash.scad b/src/__comm__/_str_hash.scad new file mode 100644 index 00000000..3ad6c64b --- /dev/null +++ b/src/__comm__/_str_hash.scad @@ -0,0 +1,11 @@ +use <../util/sum.scad>; + +function _str_hash(value) = + let( + s = str(value), + leng = len(s) + ) + sum([ + for(i = [0:leng - 1]) + ord(s[i]) * pow(31, leng - 1 - i) + ]); \ No newline at end of file diff --git a/src/collection/hashset.scad b/src/collection/hashset.scad index f3d46021..f4561169 100644 --- a/src/collection/hashset.scad +++ b/src/collection/hashset.scad @@ -1,4 +1,4 @@ -use <__comm__/_str_hash.scad>; +use <../__comm__/_str_hash.scad>; use <_impl/_hashset_impl.scad>; use <_impl/_hashset_add_impl.scad>; diff --git a/src/collection/hashset_add.scad b/src/collection/hashset_add.scad index 8897b8ae..3418a7ad 100644 --- a/src/collection/hashset_add.scad +++ b/src/collection/hashset_add.scad @@ -1,4 +1,4 @@ -use <__comm__/_str_hash.scad>; +use <../__comm__/_str_hash.scad>; use <_impl/_hashset_add_impl.scad>; function hashset_add(set, elem, eq = function(e1, e2) e1 == e2, hash = function(e) _str_hash(e)) = diff --git a/src/collection/hashset_del.scad b/src/collection/hashset_del.scad index 0ee22c8c..b90215bf 100644 --- a/src/collection/hashset_del.scad +++ b/src/collection/hashset_del.scad @@ -1,4 +1,4 @@ -use <__comm__/_str_hash.scad>; +use <../__comm__/_str_hash.scad>; use <../util/slice.scad>; function _find(lt, elem, eq, leng, i = 0) = diff --git a/src/collection/hashset_has.scad b/src/collection/hashset_has.scad index 13b0bc16..612dd0ce 100644 --- a/src/collection/hashset_has.scad +++ b/src/collection/hashset_has.scad @@ -1,4 +1,4 @@ -use <__comm__/_str_hash.scad>; +use <../__comm__/_str_hash.scad>; use <../util/some.scad>; function hashset_has(set, elem, eq = function(e1, e2) e1 == e2, hash = function(e) _str_hash(e)) =