# Copyright 2018 Faraz Haider. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. defmodule CSMT.Types do @type hash_algorithm :: :md5 | :sha | :sha224 | :sha256 | :sha384 | :sha512 @type hash :: binary @type backend :: [{binary, binary}, ...] @type values :: [binary, ...] @type children :: [binary] | [] @type tree_id :: binary @type tree_name :: binary @type size :: pos_integer @type tree :: %CSMT.Trees.Tree{ treeId: tree_id, treeName: tree_name, hashFunction: hash_algorithm, root: hash, size: size, backend: backend } @type tree_node :: %CSMT.Nodes.Node{ treeId: tree_id, hash: hash, children: children, size: size, metadata: binary } @type direction :: binary @type audit_proof :: term end