use crate::base::cell::{
region::{self, Brand, Identity},
values,
};
#[derive(Clone, Copy, Debug)]
#[repr(transparent)]
pub struct Proof<B: Brand> {
pub(super) proof: values::Proof<B>,
}
impl<B: Brand> Proof<B> {
pub const fn bind<T>(self, value: T) -> region::Value<B, T> {
region::Value {
value: self.proof.bind(value),
}
}
}
const _: () = {
assert!(size_of::<Proof<Identity<'static>>>() == 0);
assert!(size_of::<Proof<Identity<'static, 1>>>() == 0);
};