use crate::codegen::json::NodeType;
use crate::codegen::json::TypeInfo;
#[derive(Clone, Default)]
pub(crate) struct SuperType {
pub(crate) variants: Vec<TypeInfo>,
pub(crate) types: Vec<String>,
}
pub(crate) fn generate_super_type(node: &NodeType) -> SuperType {
let variants = node
.subtypes
.as_ref()
.map(|subtypes| subtypes.to_vec())
.unwrap_or_default();
let types = node
.subtypes
.as_ref()
.map(|subtypes| {
subtypes
.iter()
.map(|subtype| subtype.kind.clone())
.collect::<Vec<String>>()
})
.unwrap_or_default();
SuperType { variants, types }
}