with objects

This commit is contained in:
2023-01-30 20:44:48 +01:00
parent 910ff4a72e
commit 5fef514801
14 changed files with 962 additions and 99 deletions

View File

@@ -0,0 +1,22 @@
use genco::{prelude::rust, quote};
use graphql_introspection_query::introspection_response::FullTypeInputFields;
use super::type_ref;
pub fn render_input_fields(
input_fields: &Vec<FullTypeInputFields>,
) -> eyre::Result<Option<rust::Tokens>> {
let mut fields: Vec<(String, rust::Tokens)> = vec![];
for field in input_fields.iter() {
fields.push((field.input_value.name.clone(), render_input_field(field)?));
}
Ok(Some(quote! {
$(for (name, field) in fields => pub $name: $field, $['\n'] )
}))
}
pub fn render_input_field(field: &FullTypeInputFields) -> eyre::Result<rust::Tokens> {
let inner = &field.input_value.type_;
type_ref::render_type_ref(inner)
}