zhc_utils 0.1.0

Shared utilities for the ZHC compiler
Documentation
macro_rules! impl_phtype {
    ($name:ident, $val:expr) => {
        #[derive(Debug, Clone, Copy, Default)]
        pub struct $name;

        impl serde::Serialize for $name {
            fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
            where
                S: serde::Serializer,
            {
                serializer.serialize_str($val)
            }
        }
    };
}

impl_phtype!(PhB, "B");
impl_phtype!(PhE, "E");
impl_phtype!(PhX, "X");
impl_phtype!(Phi, "i");
impl_phtype!(PhM, "M");
impl_phtype!(PhC, "C");