From 0b85e31d947fcf666a6c5c4572162f317e6217b1 Mon Sep 17 00:00:00 2001 From: edipretoro Date: Sun, 19 Jul 2026 16:58:16 +0200 Subject: [PATCH] Implementing the first challenge --- 0101/kv.go | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/0101/kv.go b/0101/kv.go index 4eefa2a..fbe581d 100644 --- a/0101/kv.go +++ b/0101/kv.go @@ -1,5 +1,7 @@ package db0101 +import "bytes" + type KV struct { mem map[string][]byte } @@ -11,10 +13,22 @@ func (kv *KV) Open() error { func (kv *KV) Close() error { return nil } -func (kv *KV) Get(key []byte) (val []byte, ok bool, err error) +func (kv *KV) Get(key []byte) (val []byte, ok bool, err error) { + val, ok = kv.mem[string(key)] + return +} -func (kv *KV) Set(key []byte, val []byte) (updated bool, err error) +func (kv *KV) Set(key []byte, val []byte) (updated bool, err error) { + prev, exist := kv.mem[string(key)] + kv.mem[string(key)] = val + updated = !exist || !bytes.Equal(prev, val) + return +} -func (kv *KV) Del(key []byte) (deleted bool, err error) +func (kv *KV) Del(key []byte) (deleted bool, err error) { + _, deleted = kv.mem[string(key)] + delete(kv.mem, string(key)) + return +} // QzBQWVJJOUhU https://trialofcode.org/