def shift
bend-collections-laws-math@1.0.0.0 · src/containers/hash_table.bend:364
import bend-collections-laws-math@1.0.0.0/src/containers/hash_table.bend as HashTable
import Base
364def shift(fuel: Nat, s: Sh, +mask: U32, +i: U32, +k: U32) -> Array<U32>:
365 match fuel s:
366 case 0n HEnd{tab}:
367 clear_bucket(tab, i)
368 case 0n HMove{tab, w, l}:
369 clear_bucket(tab, i)
370 case 0n HSkip{tab}:
371 clear_bucket(tab, i)
372 case 1n+p HEnd{tab}:
373 clear_bucket(tab, i)
374 case 1n+p HMove{tab, +w, +l}:
375 +k2 = bnext(k, mask)
376 shift(p, sh_step(put_bucket(tab, i, w, l), mask, k, k2), mask, k, k2)
377 case 1n+p HSkip{tab}:
378 +k2 = bnext(k, mask)
379 shift(p, sh_step(tab, mask, i, k2), mask, i, k2)