pub fn create_enum_class<T: Display>(
    name: &str,
    variants: impl Iterator<Item = T>
) -> String