Current section
Files
Jump to
Current section
Files
lib/types.ex
# 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