24 lines
1.0 KiB
Plaintext
24 lines
1.0 KiB
Plaintext
|
|
#YASS13_HashMap_Type = "Chained"
|
|
|
|
; Common prototypes every hashmap implementation must match.
|
|
Prototype.i HashMapProto_Create(SizePower.b)
|
|
Prototype.i HashMapProto_GetByHash(*Map, Hash.q)
|
|
Prototype.b HashMapProto_OverwriteByHash(*Map, *Data, Hash.q, *FreeingCallback = #Null)
|
|
Prototype HashMapProto_DeleteByHash(*Map, Hash.q)
|
|
Prototype HashMapProto_Free(*Map)
|
|
Prototype HashMapProto_FreeCallback(*Data)
|
|
|
|
CompilerIf #YASS13_HashMap_Type = "Chained"
|
|
XIncludeFile "./_ChainedHashMap.pbi"
|
|
|
|
Global HashMap_Create.HashMapProto_Create = ChainedHashMap::@Create()
|
|
Global HashMap_GetByHash.HashMapProto_GetByHash = ChainedHashMap::@GetByHash()
|
|
Global HashMap_OverwriteByHash.HashMapProto_OverwriteByHash = ChainedHashMap::@OverwriteByHash()
|
|
Global HashMap_DeleteByHash.HashMapProto_DeleteByHash = ChainedHashMap::@DeleteByHash()
|
|
Global HashMap_Free.HashMapProto_Free = ChainedHashMap::@Free()
|
|
Global HashMap_NoopFree.HashMapProto_FreeCallback = ChainedHashMap::@NoopFree()
|
|
CompilerElse
|
|
CompilerError("You must defined a valid core hashmap type !")
|
|
CompilerEndIf
|