aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/BranchIndex.mli
blob: 5a867bf3bca020d79440ba37ef01912bf8bb2314 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
type address = Concepts.Hash.hash
type root = address
type branch_name = string
type branch_state_root = address

val default_branch_name : branch_name

module Make (Store : Abstract.Storage.STORAGE) : sig
  type tree

  val empty : tree
  val hash_of : tree -> root
  val persist : Store.transaction -> tree -> (root, Concepts.Condition.condition) result
  val find : Store.transaction -> root -> (tree option, Concepts.Condition.condition) result

  val find_branch :
    Store.transaction ->
    branch_name ->
    tree ->
    (branch_state_root option, Concepts.Condition.condition) result

  val put_branch :
    Store.transaction ->
    branch_name ->
    branch_state_root ->
    tree ->
    (tree, Concepts.Condition.condition) result
end