mirror of
https://github.com/kjuulh/dagger-rs.git
synced 2025-07-26 03:19:21 +02:00
with proper optional types
This commit is contained in:
@@ -11,15 +11,6 @@ pub fn render_type_ref(inner: &TypeRef) -> eyre::Result<rust::Tokens> {
|
||||
return t.clone().of_type.map(|t| *t);
|
||||
};
|
||||
|
||||
if !is_required_type_ref(inner) {
|
||||
if let Some(inner_of_type) = extract_of_type(inner) {
|
||||
let inner_field = render_type_ref(&inner_of_type)?;
|
||||
return Ok(quote! {
|
||||
Option<$inner_field>
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if is_list_type(&inner) {
|
||||
if let Some(inner_of_type) = extract_of_type(inner) {
|
||||
let inner_field = render_type_ref(&inner_of_type)?;
|
||||
@@ -58,6 +49,15 @@ pub fn render_type_ref(inner: &TypeRef) -> eyre::Result<rust::Tokens> {
|
||||
});
|
||||
}
|
||||
|
||||
if !is_required_type_ref(inner) {
|
||||
if let Some(inner_of_type) = extract_of_type(inner) {
|
||||
let inner_field = render_type_ref(&inner_of_type)?;
|
||||
return Ok(quote! {
|
||||
Option<$inner_field>
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(inner_type) = inner.of_type.as_ref() {
|
||||
return render_type_ref(&inner_type);
|
||||
}
|
||||
|
@@ -32,8 +32,8 @@ pub fn is_input_object_type(t: &FullType) -> bool {
|
||||
|
||||
pub fn is_required_type(t: &FullTypeInputFields) -> bool {
|
||||
match t.input_value.type_.kind {
|
||||
Some(__TypeKind::NON_NULL) => return false,
|
||||
Some(_) => return true,
|
||||
Some(__TypeKind::NON_NULL) => return true,
|
||||
Some(_) => return false,
|
||||
_ => return false,
|
||||
}
|
||||
}
|
||||
@@ -42,7 +42,7 @@ pub fn is_required_type_ref(t: &TypeRef) -> bool {
|
||||
match t.kind {
|
||||
Some(__TypeKind::NON_NULL) => return true,
|
||||
Some(_) => return false,
|
||||
_ => return true,
|
||||
_ => return false,
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user