use super::DeferredRoot;
use crate::{
Word,
serde::{ByteReader, ByteWriter, Deserializable, DeserializationError, Serializable},
};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct DeferredClaim(DeferredRoot);
impl DeferredClaim {
pub const fn new(deferred_root: DeferredRoot) -> Self {
Self(deferred_root)
}
pub const fn root(self) -> DeferredRoot {
self.0
}
pub const fn commitment(self) -> Word {
self.0
}
}
impl Serializable for DeferredClaim {
fn write_into<W: ByteWriter>(&self, target: &mut W) {
self.0.write_into(target);
}
}
impl Deserializable for DeferredClaim {
fn read_from<R: ByteReader>(source: &mut R) -> Result<Self, DeserializationError> {
Ok(Self::new(DeferredRoot::read_from(source)?))
}
fn min_serialized_size() -> usize {
DeferredRoot::min_serialized_size()
}
}