use base::Result;
use base::ConstantSize;
use base::Datable;
pub trait Commit<C>
where C: Datable + ConstantSize,
Self: 'static + Sized
{
fn commit(&mut self, msg: &[u8]) -> Result<C>;
fn verify(&mut self, msg: &[u8], commitment: &C) -> Result<bool>;
fn check(&mut self, msg: &[u8], commitment: &C) -> Result<()>;
}