Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
+class TypingLayout[E: Object]
# Unic ids or each element
var ids: Map[E, Int] = new HashMap[E, Int]
# Fixed positions of each element in all tables
var pos: Map[E, Int] = new HashMap[E, Int]
end
# Unic ids or each element
var ids: Map[E, Int] = new HashMap[E, Int]
# Fixed positions of each element in all tables
var pos: Map[E, Int] = new HashMap[E, Int]
end
+class PHTypingLayout[E: Object]
super TypingLayout[E]
# Masks used by hash function
var masks: Map[E, Int] = new HashMap[E, Int]
super TypingLayout[E]
# Masks used by hash function
var masks: Map[E, Int] = new HashMap[E, Int]
var hashes: Map[E, Map[E, Int]] = new HashMap[E, Map[E, Int]]
end
var hashes: Map[E, Map[E, Int]] = new HashMap[E, Map[E, Int]]
end
+class PropertyLayout[E: Object]
# Fixed positions of each element in all tables
var pos: Map[E, Int] = new HashMap[E, Int]
end
# Fixed positions of each element in all tables
var pos: Map[E, Int] = new HashMap[E, Int]
end
-abstract class TypingLayoutBuilder[E]
+abstract class TypingLayoutBuilder[E: Object]
type LAYOUT: TypingLayout[E]
type LAYOUT: TypingLayout[E]
# Perfect Hashing (PH)
# T = type of holder
# U = type of elements to hash
# Perfect Hashing (PH)
# T = type of holder
# U = type of elements to hash
-private class PerfectHasher[T, U]
+private class PerfectHasher[T: Object, U: Object]