carbon-token-2022-decoder 2.0.0

Carbon Token 2022 Decoder
Documentation
//! This code was AUTOGENERATED using the Codama library.
/// ElGamal ciphertext containing an account balance.
#[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
    }
}