mirror of
https://github.com/kjuulh/dagger-rs.git
synced 2025-02-23 08:11:12 +01:00
add basic output
This commit is contained in:
parent
12507188ca
commit
af0464e45e
@ -28,7 +28,7 @@ impl Generator for RustGenerator {
|
||||
visit_scalar: Arc::new({
|
||||
let render = render.clone();
|
||||
move |t| {
|
||||
let rendered_scalar = render_scalar()?;
|
||||
let rendered_scalar = render_scalar(t)?;
|
||||
|
||||
let mut render = render.lock().unwrap();
|
||||
|
||||
@ -42,7 +42,7 @@ impl Generator for RustGenerator {
|
||||
let render = render.clone();
|
||||
|
||||
move |t| {
|
||||
let rendered_scalar = render_object()?;
|
||||
let rendered_scalar = render_object(t)?;
|
||||
|
||||
let mut render = render.lock().unwrap();
|
||||
|
||||
@ -56,7 +56,7 @@ impl Generator for RustGenerator {
|
||||
let render = render.clone();
|
||||
|
||||
move |t| {
|
||||
let rendered_scalar = render_input()?;
|
||||
let rendered_scalar = render_input(t)?;
|
||||
|
||||
let mut render = render.lock().unwrap();
|
||||
|
||||
@ -70,7 +70,7 @@ impl Generator for RustGenerator {
|
||||
let render = render.clone();
|
||||
|
||||
move |t| {
|
||||
let rendered_scalar = render_enum()?;
|
||||
let rendered_scalar = render_enum(t)?;
|
||||
|
||||
let mut render = render.lock().unwrap();
|
||||
|
||||
|
@ -1,6 +1,33 @@
|
||||
use dagger_core::introspection::FullType;
|
||||
use genco::prelude::rust;
|
||||
use genco::quote;
|
||||
|
||||
pub fn render_enum() -> eyre::Result<rust::Tokens> {
|
||||
Ok(quote! {})
|
||||
fn render_enum_values(values: &FullType) -> Option<rust::Tokens> {
|
||||
let values = values
|
||||
.enum_values
|
||||
.as_ref()
|
||||
.into_iter()
|
||||
.map(|values| {
|
||||
values
|
||||
.into_iter()
|
||||
.map(|val| quote! { $(val.name.as_ref()) })
|
||||
})
|
||||
.flatten()
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let mut tokens = rust::Tokens::new();
|
||||
for val in values {
|
||||
tokens.append(val);
|
||||
tokens.push();
|
||||
}
|
||||
|
||||
Some(tokens)
|
||||
}
|
||||
|
||||
pub fn render_enum(t: &FullType) -> eyre::Result<rust::Tokens> {
|
||||
Ok(quote! {
|
||||
pub enum $(t.name.as_ref()) {
|
||||
$(render_enum_values(t))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -1,6 +1,13 @@
|
||||
use dagger_core::introspection::FullType;
|
||||
use genco::prelude::rust;
|
||||
use genco::quote;
|
||||
|
||||
pub fn render_input() -> eyre::Result<rust::Tokens> {
|
||||
Ok(quote! {})
|
||||
use crate::rust::functions::format_name;
|
||||
|
||||
pub fn render_input(t: &FullType) -> eyre::Result<rust::Tokens> {
|
||||
Ok(quote! {
|
||||
pub struct $(format_name(t.name.as_ref().unwrap())) {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -1,6 +1,12 @@
|
||||
use dagger_core::introspection::FullType;
|
||||
use genco::prelude::rust;
|
||||
use genco::quote;
|
||||
|
||||
pub fn render_object() -> eyre::Result<rust::Tokens> {
|
||||
Ok(quote! {})
|
||||
use crate::rust::functions::format_name;
|
||||
|
||||
pub fn render_object(t: &FullType) -> eyre::Result<rust::Tokens> {
|
||||
Ok(quote! {
|
||||
pub struct $(format_name(t.name.as_ref().unwrap())) {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -1,6 +1,11 @@
|
||||
use dagger_core::introspection::FullType;
|
||||
use genco::prelude::rust;
|
||||
use genco::quote;
|
||||
|
||||
pub fn render_scalar() -> eyre::Result<rust::Tokens> {
|
||||
Ok(quote! {})
|
||||
use crate::rust::functions::format_name;
|
||||
|
||||
pub fn render_scalar(t: &FullType) -> eyre::Result<rust::Tokens> {
|
||||
Ok(quote! {
|
||||
pub struct $(format_name(&t.name.as_ref().unwrap()))(String);
|
||||
})
|
||||
}
|
||||
|
@ -72,12 +72,21 @@ impl Visitor {
|
||||
.filter(|t| match t.full_type.kind.as_ref().unwrap() == &item.kind {
|
||||
true => match (item.ignore.as_ref(), t.full_type.name.as_ref()) {
|
||||
(Some(ignore), Some(name)) => {
|
||||
if name.starts_with("__") {
|
||||
return false;
|
||||
}
|
||||
if ignore.contains(name) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
(None, Some(name)) => {
|
||||
if name.starts_with("__") {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
_ => false,
|
||||
},
|
||||
false => false,
|
||||
|
@ -1 +1,7 @@
|
||||
|
||||
pub struct CacheId(String);
|
||||
pub struct ContainerId(String);
|
||||
pub struct DirectoryId(String);
|
||||
pub struct FileId(String);
|
||||
pub struct Platform(String);
|
||||
pub struct SecretId(String);
|
||||
pub struct SocketId(String);
|
||||
|
Loading…
x
Reference in New Issue
Block a user