Files
db_in_45_steps_go/0101/kv.go
T

35 lines
671 B
Go

package db0101
import "bytes"
type KV struct {
mem map[string][]byte
}
func (kv *KV) Open() error {
kv.mem = map[string][]byte{} // empty
return nil
}
func (kv *KV) Close() error { return nil }
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) {
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) {
_, deleted = kv.mem[string(key)]
delete(kv.mem, string(key))
return
}
// QzBQWVJJOUhU https://trialofcode.org/