#[derive(Debug, Clone, borsh::BorshSerialize, borsh::BorshDeserialize, PartialEq)]
pub struct EncryptedBalance(pub [u8; 64]);
#[cfg(feature = "serde")]
impl serde::Serialize for EncryptedBalance {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serde_big_array::BigArray::serialize(&self.0, serializer)
}
}
#[cfg(feature = "serde")]
impl<'de> serde::Deserialize<'de> for EncryptedBalance {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
serde_big_array::BigArray::deserialize(deserializer).map(EncryptedBalance)
}
}
impl From<[u8; 64]> for EncryptedBalance {
fn from(v: [u8; 64]) -> Self {
Self(v)
}
}
impl From<EncryptedBalance> for [u8; 64] {
fn from(v: EncryptedBalance) -> Self {
v.0
}
}
impl std::ops::Deref for EncryptedBalance {
type Target = [u8; 64];
fn deref(&self) -> &Self::Target {
&self.0
}
}