nimbus-eth1/nimbus/db/backends/memory_backend.nim
2018-05-28 13:22:28 +03:00

31 lines
951 B
Nim

# Nimbus
# Copyright (c) 2018 Status Research & Development GmbH
# Licensed under either of
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
# * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
# at your option. This file may not be copied, modified, or distributed except according to those terms.
import tables, stint
type
MemoryDB* = ref object
kvStore*: Table[string, Int256]
proc newMemoryDB*(kvStore: Table[string, Int256]): MemoryDB =
MemoryDB(kvStore: kvStore)
proc newMemoryDB*: MemoryDB =
MemoryDB(kvStore: initTable[string, Int256]())
proc get*(db: MemoryDB, key: string): Int256 =
db.kvStore[key]
proc set*(db: var MemoryDB, key: string, value: Int256) =
db.kvStore[key] = value
proc exists*(db: MemoryDB, key: string): bool =
db.kvStore.hasKey(key)
proc delete*(db: var MemoryDB, key: string) =
db.kvStore.del(key)