mirror of
https://github.com/kjuulh/dagger-rs.git
synced 2025-12-28 10:51:01 +01:00
with objects
This commit is contained in:
22
crates/dagger-codegen/src/handlers/input_field.rs
Normal file
22
crates/dagger-codegen/src/handlers/input_field.rs
Normal 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)
|
||||
}
|
||||
Reference in New Issue
Block a user