hmap.bend checks
raw source on the hub · import bend-kit-collections@0.1.1.0/hmap.bend as Hmap
HMap: a hash trie keyed by any Data type, with equality-checked collision buckets. Equal keys must have equal hashes; different keys with one hash share a bucket.
1 import
import Base
Types
type Entry source · line 5 · raw
@-K:Data -> @-V:Data -> Data
Entry@-K:Data -> @-V:Data -> @key:K -> @val:V -> Entry<K, V>
type HMap source · line 8 · raw
@-K:Data -> @-V:Data -> Data
HNil@-K:Data -> @-V:Data -> HMap<K, V>
HLeaf@-K:Data -> @-V:Data -> @hash:U32 -> @entries:List<&2, Entry<K, V>> -> HMap<K, V>
HBranch@-K:Data -> @-V:Data -> @lo:HMap<K, V> -> @hi:HMap<K, V> -> HMap<K, V>
Definitions
def HMap.new source · line 13 · raw
@-K:Data -> @-V:Data -> HMap<K, V>
def HMap.bool source · line 16 · raw
@-A:Type -> @b:Bool -> @yes:(@_:Unit -> A) -> @no:(@_:Unit -> A) -> A
def HMap.split.side source · line 47 · raw
@-K:Data -> @-V:Data -> @left:Bool -> @old:HMap<K, V> -> @fresh:HMap<K, V> -> HMap<K, V>
def HMap.size source · line 136 · raw
@-K:Data -> @-V:Data -> @m:HMap<K, V> -> Nat
Templates
template HMap.entries.put source · line 23 · raw
@-K:Data -> @-V:Data -> @-eq:(@_:K -> @_:K -> Bool) -> @xs:List<&2, Entry<K, V>> -> @+k:K -> @+v:V -> List<&2, Entry<K, V>>
template HMap.entries.get source · line 35 · raw
@-K:Data -> @-V:Data -> @-eq:(@_:K -> @_:K -> Bool) -> @xs:List<&2, Entry<K, V>> -> @+k:K -> Maybe<&2, V>
template HMap.split source · line 56 · raw
@-K:Data -> @-V:Data -> @-eq:(@_:K -> @_:K -> Bool) -> @+n:Nat -> @+mask:U32 -> @+oldhash:U32 -> @+entries:List<&2, Entry<K, V>> -> @+hash:U32 -> @+k:K -> @+v:V -> HMap<K, V>
template HMap.put.go source · line 72 · raw
@-K:Data -> @-V:Data -> @-eq:(@_:K -> @_:K -> Bool) -> @+n:Nat -> @+mask:U32 -> @m:HMap<K, V> -> @+hash:U32 -> @+k:K -> @+v:V -> HMap<K, V>
template HMap.put source · line 98 · raw
@-K:Data -> @-V:Data -> @-hash:(@_:K -> U32) -> @-eq:(@_:K -> @_:K -> Bool) -> @m:HMap<K, V> -> @+k:K -> @v:V -> HMap<K, V>
template HMap.get.go source · line 104 · raw
@-K:Data -> @-V:Data -> @-eq:(@_:K -> @_:K -> Bool) -> @+n:Nat -> @+mask:U32 -> @m:HMap<K, V> -> @+hash:U32 -> @+k:K -> Maybe<&2, V>
template HMap.get source · line 130 · raw
@-K:Data -> @-V:Data -> @-hash:(@_:K -> U32) -> @-eq:(@_:K -> @_:K -> Bool) -> @m:HMap<K, V> -> @+k:K -> Maybe<&2, V>