use alloc::borrow::ToOwned; use core::borrow::Borrow; pub mod cw; pub mod ics23; pub mod multi; trait Verifier { type Proof; type Root: Eq; type Key; type Value: Borrow; type ValueRef: ?Sized + ToOwned; type Error; fn verify( &self, proof: &Self::Proof, key: &Self::Key, value: &Self::ValueRef, ) -> Result; fn verify_against_root( &self, proof: &Self::Proof, key: &Self::Key, value: &Self::ValueRef, root: &Self::Root, ) -> Result { let found_root = self.verify(proof, key, value)?; Ok(root == &found_root) } }