From 95a9fa42672c931413bcb07351ac4d47d3bf88f4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexis=20Laferri=C3=A8re?= Date: Tue, 16 Dec 2014 09:14:09 -0500 Subject: [PATCH] lib/more_collections: add `remove_at` to `HashMap[23]` MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Alexis Laferrière --- lib/more_collections.nit | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/lib/more_collections.nit b/lib/more_collections.nit index 6396ec2..ecbbf9f 100644 --- a/lib/more_collections.nit +++ b/lib/more_collections.nit @@ -86,6 +86,17 @@ class HashMap2[K1, K2, V] end level2[k2] = v end + + # Remove the item at `k1` and `k2` + fun remove_at(k1: K1, k2: K2) + do + var level1 = self.level1 + + if not level1.has_key(k1) then return + + var level2 = level1[k1] + level2.keys.remove(k2) + end end # Simple way to store an `HashMap[K1, HashMap[K2, HashMap[K3, V]]]` @@ -123,6 +134,17 @@ class HashMap3[K1, K2, K3, V] end level2[k2, k3] = v end + + # Remove the item at `k1`, `k2` and `k3` + fun remove_at(k1: K1, k2: K2, k3: K3) + do + var level1 = self.level1 + + if not level1.has_key(k1) then return + + var level2 = level1[k1] + level2.remove_at(k2, k3) + end end # A map with a default value. -- 1.7.9.5