2021-01-12 12:58:57 +00:00
|
|
|
import std/tables
|
|
|
|
import std/hashes
|
2021-01-14 12:41:54 +00:00
|
|
|
import pkg/libp2p
|
2021-01-12 12:58:57 +00:00
|
|
|
import ./merkledag
|
|
|
|
|
|
|
|
export merkledag
|
|
|
|
|
|
|
|
type
|
|
|
|
Repo* = ref object
|
2021-01-14 12:41:54 +00:00
|
|
|
storage: Table[Cid, MerkleDag]
|
2021-01-12 12:58:57 +00:00
|
|
|
|
2021-01-14 12:41:54 +00:00
|
|
|
proc hash(id: Cid): Hash =
|
|
|
|
hash($id)
|
2021-01-12 12:58:57 +00:00
|
|
|
|
|
|
|
proc store*(repo: Repo, dag: MerkleDag) =
|
2021-01-14 12:41:54 +00:00
|
|
|
repo.storage[dag.rootId] = dag
|
2021-01-12 12:58:57 +00:00
|
|
|
|
2021-01-14 12:41:54 +00:00
|
|
|
proc contains*(repo: Repo, id: Cid): bool =
|
|
|
|
repo.storage.hasKey(id)
|
2021-01-12 12:58:57 +00:00
|
|
|
|
2021-01-14 12:41:54 +00:00
|
|
|
proc retrieve*(repo: Repo, id: Cid): MerkleDag =
|
|
|
|
repo.storage[id]
|