From c312e74f95fcfe9bd1e91c092a2d987cb067a075 Mon Sep 17 00:00:00 2001 From: Katharina Fey Date: Sun, 14 Jul 2019 02:00:32 +0100 Subject: Implementing HASH node `remove_key` function --- bowl.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'bowl.c') diff --git a/bowl.c b/bowl.c index c1271a2..e515f6b 100644 --- a/bowl.c +++ b/bowl.c @@ -106,7 +106,20 @@ err_t bowl_remove(struct bowl *self, struct bowl *child) } } -err_t bowl_remove_key(struct bowl *self, size_t idx, struct bowl **prev) +err_t bowl_remove_key(struct bowl *self, char *key, struct bowl **prev) +{ + CHECK(self, INVALID_PARAMS) + CHECK(key, INVALID_PARAMS) + + switch(self->type) { + case LEAF: return INVALID_PARAMS; + case HASH: return hash_remove_key(self, key, prev); + + default: return INVALID_STATE; + } +} + +err_t bowl_remove_idx(struct bowl *self, size_t idx, struct bowl **prev) { CHECK(self, INVALID_PARAMS) CHECK((idx >= 0), INVALID_PARAMS) -- cgit v1.2.3