use genco::{prelude::rust, quote}; use graphql_introspection_query::introspection_response::FullType; use crate::predicates::is_enum_type; use super::{utility::render_description, Handler}; pub struct Enumeration; impl Handler for Enumeration { fn predicate(&self, t: &FullType) -> bool { is_enum_type(t) } fn render(&self, t: &FullType) -> eyre::Result { let name = t .name .as_ref() .ok_or(eyre::anyhow!("could not get name from type"))?; let description = render_description(t).ok_or(eyre::anyhow!("could not find description"))?; let out = quote! { $description pub enum $name {} }; Ok(out) } }