with codegen output

This commit is contained in:
Kasper Juul Hermansen 2023-01-29 15:23:03 +01:00
parent e5874141b3
commit 0bf6b0e91e
Signed by: kjuulh
GPG Key ID: 57B6E1465221F912
5 changed files with 31 additions and 5 deletions

View File

@ -1,10 +1,9 @@
use std::sync::Arc;
use genco::{prelude::rust, quote, quote_in};
use genco::{prelude::rust, quote};
use graphql_introspection_query::introspection_response::{
FullType, IntrospectionResponse, Schema,
};
use itertools::Itertools;
use crate::{
handlers::{scalar::Scalar, DynHandler, Handlers},
@ -47,7 +46,6 @@ impl CodeGeneration {
for t in types {
if let Some(_) = self.type_name(&t) {
let rendered = handler.render(&t)?;
output.push();
output.append(rendered);
}

View File

@ -30,7 +30,7 @@ impl Handler for Scalar {
let name = t.name.as_ref().ok_or(eyre::anyhow!("name not found"))?;
Ok(quote! {
pub struct $name (Scalar);
pub struct $name(Scalar);
})
}

View File

@ -0,0 +1,23 @@
// code generated by dagger. DO NOT EDIT.
/// A content-addressed socket identifier.
pub struct SocketID(Scalar);
/// The platform config OS and architecture in a Container.
/// The format is [os]/[platform]/[version] (e.g. darwin/arm64/v7, windows/amd64, linux/arm64).
pub struct Platform(Scalar);
/// A unique container identifier. Null designates an empty container (scratch).
pub struct ContainerID(Scalar);
/// A content-addressed directory identifier.
pub struct DirectoryID(Scalar);
/// A unique identifier for a secret.
pub struct SecretID(Scalar);
/// A file identifier.
pub struct FileID(Scalar);
/// A global cache volume identifier.
pub struct CacheID(Scalar);

View File

@ -1,3 +1,5 @@
pub mod gen;
pub fn add(left: usize, right: usize) -> usize {
left + right
}

View File

@ -1,3 +1,5 @@
use std::io::Write;
use clap::{Arg, ArgMatches};
use dagger_codegen::codegen::CodeGeneration;
@ -21,7 +23,8 @@ impl GenerateCommand {
let code = CodeGeneration::new().generate(&schema)?;
if let Some(output) = arg_matches.get_one::<String>("output") {
// TODO: Write to file
let mut file = std::fs::File::create(output)?;
file.write(code.as_bytes())?;
} else {
println!("{}", code);
}