Trait filecoin_proofs_api::MerkleTreeTrait [−][src]
pub trait MerkleTreeTrait: Send + Sync + Debug { type Arity: 'static + PoseidonArity; type SubTreeArity: 'static + PoseidonArity; type TopTreeArity: 'static + PoseidonArity; type Hasher: 'static + Hasher; type Store: Store<<Self::Hasher as Hasher>::Domain>; type Proof: MerkleProofTrait; fn display() -> String; fn root(&self) -> <Self::Hasher as Hasher>::Domain; fn gen_proof(&self, index: usize) -> Result<Self::Proof, Error>; fn gen_cached_proof(
&self,
i: usize,
rows_to_discard: Option<usize>
) -> Result<Self::Proof, Error>; fn row_count(&self) -> usize; fn leaves(&self) -> usize; fn from_merkle(
tree: MerkleTree<<Self::Hasher as Hasher>::Domain, <Self::Hasher as Hasher>::Function, Self::Store, Self::Arity, Self::SubTreeArity, Self::TopTreeArity>
) -> Self; }
Expand description
Trait used to abstract over the way Merkle Trees are constructed and stored.
Associated Types
type Arity: 'static + PoseidonArity
[src]type SubTreeArity: 'static + PoseidonArity
[src]type TopTreeArity: 'static + PoseidonArity
[src]type Proof: MerkleProofTrait
[src]Required methods
Creates a merkle proof of the node at the given index.
fn gen_cached_proof(
&self,
i: usize,
rows_to_discard: Option<usize>
) -> Result<Self::Proof, Error>
[src]fn from_merkle(
tree: MerkleTree<<Self::Hasher as Hasher>::Domain, <Self::Hasher as Hasher>::Function, Self::Store, Self::Arity, Self::SubTreeArity, Self::TopTreeArity>
) -> Self
[src]Implementations on Foreign Types
impl<H, S, U, V, W> MerkleTreeTrait for MerkleTreeWrapper<H, S, U, V, W> where
S: Store<<H as Hasher>::Domain>,
W: 'static + PoseidonArity,
V: 'static + PoseidonArity,
U: 'static + PoseidonArity,
H: 'static + Hasher,
[src]
impl<H, S, U, V, W> MerkleTreeTrait for MerkleTreeWrapper<H, S, U, V, W> where
S: Store<<H as Hasher>::Domain>,
W: 'static + PoseidonArity,
V: 'static + PoseidonArity,
U: 'static + PoseidonArity,
H: 'static + Hasher,
[src]type Arity = U
type SubTreeArity = V
type TopTreeArity = W
type Hasher = H
type Store = S
type Proof = MerkleProof<<MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::Hasher, <MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::Arity, <MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::SubTreeArity, <MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::TopTreeArity>
pub fn root(
&self
) -> <<MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::Hasher as Hasher>::Domain
[src]pub fn gen_proof(
&self,
i: usize
) -> Result<<MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::Proof, Error>
[src]pub fn gen_cached_proof(
&self,
i: usize,
rows_to_discard: Option<usize>
) -> Result<<MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::Proof, Error>
[src]pub fn from_merkle(
tree: MerkleTree<<<MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::Hasher as Hasher>::Domain, <<MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::Hasher as Hasher>::Function, <MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::Store, <MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::Arity, <MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::SubTreeArity, <MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::TopTreeArity>
) -> MerkleTreeWrapper<H, S, U, V, W>
[src]