snarkvm_console_types_group/
serialize.rsuse super::*;
impl<E: Environment> Serialize for Group<E> {
    fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
        match serializer.is_human_readable() {
            true => serializer.collect_str(self),
            false => ToBytesSerializer::serialize(self, serializer),
        }
    }
}
impl<'de, E: Environment> Deserialize<'de> for Group<E> {
    fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
        match deserializer.is_human_readable() {
            true => FromStr::from_str(&String::deserialize(deserializer)?).map_err(de::Error::custom),
            false => FromBytesDeserializer::<Self>::deserialize(deserializer, "group", Self::size_in_bytes()),
        }
    }
}
#[cfg(test)]
mod tests {
    use super::*;
    use snarkvm_console_network_environment::Console;
    type CurrentEnvironment = Console;
    const ITERATIONS: u64 = 1000;
    #[test]
    fn test_serde_json() -> Result<()> {
        let mut rng = TestRng::default();
        for _ in 0..ITERATIONS {
            let expected = Group::<CurrentEnvironment>::new(Uniform::rand(&mut rng));
            let expected_string = &expected.to_string();
            let candidate_string = serde_json::to_string(&expected)?;
            assert_eq!(expected_string, serde_json::Value::from_str(&candidate_string)?.as_str().unwrap());
            assert_eq!(expected, Group::from_str(expected_string)?);
            assert_eq!(expected, serde_json::from_str(&candidate_string)?);
        }
        Ok(())
    }
    #[test]
    fn test_bincode() -> Result<()> {
        let mut rng = TestRng::default();
        for _ in 0..ITERATIONS {
            let expected = Group::<CurrentEnvironment>::new(Uniform::rand(&mut rng));
            let expected_bytes = expected.to_bytes_le()?;
            assert_eq!(&expected_bytes[..], &bincode::serialize(&expected)?[..]);
            assert_eq!(expected, Group::read_le(&expected_bytes[..])?);
            assert_eq!(expected, bincode::deserialize(&expected_bytes[..])?);
        }
        Ok(())
    }
}