diff --git a/stdlib/internal/khash.codon b/stdlib/internal/khash.codon index 7127ce74..11a474c8 100644 --- a/stdlib/internal/khash.codon +++ b/stdlib/internal/khash.codon @@ -1,23 +1,33 @@ -def __ac_isempty(flag: Ptr[u32], i: int): - return int(flag[i >> 4] >> u32((i & 0xf) << 1)) & 2 +# (c) 2022 Exaloop Inc. All rights reserved. -def __ac_isdel(flag: Ptr[u32], i: int): - return int(flag[i >> 4] >> u32((i & 0xf) << 1)) & 1 -def __ac_iseither(flag: Ptr[u32], i: int): - return int(flag[i >> 4] >> u32((i & 0xf) << 1)) & 3 +def __ac_isempty(flag: Ptr[u32], i: int) -> int: + return int(flag[i >> 4] >> u32((i & 0xF) << 1)) & 2 -def __ac_set_isdel_false(flag: Ptr[u32], i: int): - flag[i >> 4] &= u32(~(1 << ((i & 0xf) << 1))) -def __ac_set_isempty_false(flag: Ptr[u32], i: int): - flag[i >> 4] &= u32(~(2 << ((i & 0xf) << 1))) +def __ac_isdel(flag: Ptr[u32], i: int) -> int: + return int(flag[i >> 4] >> u32((i & 0xF) << 1)) & 1 -def __ac_set_isboth_false(flag: Ptr[u32], i: int): - flag[i >> 4] &= u32(~(3 << ((i & 0xf) << 1))) -def __ac_set_isdel_true(flag: Ptr[u32], i: int): - flag[i >> 4] |= u32(1 << ((i & 0xf) << 1)) +def __ac_iseither(flag: Ptr[u32], i: int) -> int: + return int(flag[i >> 4] >> u32((i & 0xF) << 1)) & 3 -def __ac_fsize(m): + +def __ac_set_isdel_false(flag: Ptr[u32], i: int) -> void: + flag[i >> 4] &= u32(~(1 << ((i & 0xF) << 1))) + + +def __ac_set_isempty_false(flag: Ptr[u32], i: int) -> void: + flag[i >> 4] &= u32(~(2 << ((i & 0xF) << 1))) + + +def __ac_set_isboth_false(flag: Ptr[u32], i: int) -> void: + flag[i >> 4] &= u32(~(3 << ((i & 0xF) << 1))) + + +def __ac_set_isdel_true(flag: Ptr[u32], i: int) -> void: + flag[i >> 4] |= u32(1 << ((i & 0xF) << 1)) + + +def __ac_fsize(m) -> int: return 1 if m < 16 else m >> 4