use super::*;
impl<N: Network> ToBits for DynamicRecord<N> {
fn write_bits_le(&self, vec: &mut Vec<bool>) {
self.owner.write_bits_le(vec);
self.root.write_bits_le(vec);
self.nonce.write_bits_le(vec);
self.version.write_bits_le(vec);
}
fn write_bits_be(&self, vec: &mut Vec<bool>) {
self.owner.write_bits_be(vec);
self.root.write_bits_be(vec);
self.nonce.write_bits_be(vec);
self.version.write_bits_be(vec);
}
}
impl<N: Network> DynamicRecord<N> {
#[inline]
pub fn size_in_bits() -> Result<usize> {
let mut size = Address::<N>::size_in_bits();
size = size.checked_add(Field::<N>::size_in_bits()).ok_or_else(|| anyhow!("`size_in_bits` overflowed"))?;
size = size.checked_add(Group::<N>::size_in_bits()).ok_or_else(|| anyhow!("`size_in_bits` overflowed"))?;
size = size.checked_add(U8::<N>::size_in_bits()).ok_or_else(|| anyhow!("`size_in_bits` overflowed"))?;
Ok(size)
}
#[inline]
pub fn size_in_bits_raw() -> Result<usize> {
Self::size_in_bits()
}
}