feat(core,sdk): remove unnecessary option returns

This commit is contained in:
Kasper Juul Hermansen 2023-02-19 15:00:00 +01:00
parent 9ada74960a
commit 05e1b8bd30
Signed by: kjuulh
GPG Key ID: 57B6E1465221F912
3 changed files with 183 additions and 193 deletions

View File

@ -5,8 +5,8 @@ use genco::quote;
use genco::tokens::quoted; use genco::tokens::quoted;
use crate::functions::{ use crate::functions::{
type_field_has_optional, type_ref_is_list_of_objects, type_ref_is_object, type_field_has_optional, type_ref_is_list_of_objects, type_ref_is_object, type_ref_is_optional,
type_ref_is_optional, CommonFunctions, CommonFunctions,
}; };
use crate::utility::OptionExt; use crate::utility::OptionExt;
@ -67,7 +67,7 @@ fn render_required_args(_funcs: &CommonFunctions, field: &FullTypeFields) -> Opt
let name = &s.input_value.name; let name = &s.input_value.name;
Some(quote! { Some(quote! {
query = query.arg($(quoted(name)), $(n)).unwrap(); query = query.arg($(quoted(name)), $(n));
}) })
}) })
}) })
@ -98,7 +98,7 @@ fn render_optional_args(_funcs: &CommonFunctions, field: &FullTypeFields) -> Opt
Some(quote! { Some(quote! {
if let Some($(&n)) = opts.$(&n) { if let Some($(&n)) = opts.$(&n) {
query = query.arg($(quoted(name)), $(&n)).unwrap(); query = query.arg($(quoted(name)), $(&n));
} }
}) })
}) })
@ -163,7 +163,7 @@ fn render_execution(funcs: &CommonFunctions, field: &FullTypeFields) -> rust::To
let graphql_client = rust::import("crate::client", "graphql_client"); let graphql_client = rust::import("crate::client", "graphql_client");
quote! { quote! {
query.execute(&$graphql_client(&self.conn)).unwrap().unwrap() query.execute(&$graphql_client(&self.conn)).unwrap()
} }
} }

View File

@ -34,7 +34,7 @@ impl CacheVolume {
pub fn id(&self) -> CacheId { pub fn id(&self) -> CacheId {
let mut query = self.selection.select("id"); let mut query = self.selection.select("id");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
} }
pub struct Container { pub struct Container {
@ -93,16 +93,16 @@ impl Container {
pub fn build(&self, context: DirectoryId, opts: Option<ContainerBuildOpts>) -> Container { pub fn build(&self, context: DirectoryId, opts: Option<ContainerBuildOpts>) -> Container {
let mut query = self.selection.select("build"); let mut query = self.selection.select("build");
query = query.arg("context", context).unwrap(); query = query.arg("context", context);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(dockerfile) = opts.dockerfile { if let Some(dockerfile) = opts.dockerfile {
query = query.arg("dockerfile", dockerfile).unwrap(); query = query.arg("dockerfile", dockerfile);
} }
if let Some(build_args) = opts.build_args { if let Some(build_args) = opts.build_args {
query = query.arg("buildArgs", build_args).unwrap(); query = query.arg("buildArgs", build_args);
} }
if let Some(target) = opts.target { if let Some(target) = opts.target {
query = query.arg("target", target).unwrap(); query = query.arg("target", target);
} }
} }
@ -115,12 +115,12 @@ impl Container {
pub fn default_args(&self) -> Vec<String> { pub fn default_args(&self) -> Vec<String> {
let mut query = self.selection.select("defaultArgs"); let mut query = self.selection.select("defaultArgs");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn directory(&self, path: String) -> Directory { pub fn directory(&self, path: String) -> Directory {
let mut query = self.selection.select("directory"); let mut query = self.selection.select("directory");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
return Directory { return Directory {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -131,14 +131,14 @@ impl Container {
pub fn entrypoint(&self) -> Vec<String> { pub fn entrypoint(&self) -> Vec<String> {
let mut query = self.selection.select("entrypoint"); let mut query = self.selection.select("entrypoint");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn env_variable(&self, name: String) -> String { pub fn env_variable(&self, name: String) -> String {
let mut query = self.selection.select("envVariable"); let mut query = self.selection.select("envVariable");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn env_variables(&self) -> Vec<EnvVariable> { pub fn env_variables(&self) -> Vec<EnvVariable> {
let mut query = self.selection.select("envVariables"); let mut query = self.selection.select("envVariables");
@ -154,24 +154,22 @@ impl Container {
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(args) = opts.args { if let Some(args) = opts.args {
query = query.arg("args", args).unwrap(); query = query.arg("args", args);
} }
if let Some(stdin) = opts.stdin { if let Some(stdin) = opts.stdin {
query = query.arg("stdin", stdin).unwrap(); query = query.arg("stdin", stdin);
} }
if let Some(redirect_stdout) = opts.redirect_stdout { if let Some(redirect_stdout) = opts.redirect_stdout {
query = query.arg("redirectStdout", redirect_stdout).unwrap(); query = query.arg("redirectStdout", redirect_stdout);
} }
if let Some(redirect_stderr) = opts.redirect_stderr { if let Some(redirect_stderr) = opts.redirect_stderr {
query = query.arg("redirectStderr", redirect_stderr).unwrap(); query = query.arg("redirectStderr", redirect_stderr);
} }
if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting { if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
query = query query = query.arg(
.arg(
"experimentalPrivilegedNesting", "experimentalPrivilegedNesting",
experimental_privileged_nesting, experimental_privileged_nesting,
) );
.unwrap();
} }
} }
@ -184,24 +182,24 @@ impl Container {
pub fn exit_code(&self) -> isize { pub fn exit_code(&self) -> isize {
let mut query = self.selection.select("exitCode"); let mut query = self.selection.select("exitCode");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn export(&self, path: String, opts: Option<ContainerExportOpts>) -> bool { pub fn export(&self, path: String, opts: Option<ContainerExportOpts>) -> bool {
let mut query = self.selection.select("export"); let mut query = self.selection.select("export");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(platform_variants) = opts.platform_variants { if let Some(platform_variants) = opts.platform_variants {
query = query.arg("platformVariants", platform_variants).unwrap(); query = query.arg("platformVariants", platform_variants);
} }
} }
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn file(&self, path: String) -> File { pub fn file(&self, path: String) -> File {
let mut query = self.selection.select("file"); let mut query = self.selection.select("file");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
return File { return File {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -212,7 +210,7 @@ impl Container {
pub fn from(&self, address: String) -> Container { pub fn from(&self, address: String) -> Container {
let mut query = self.selection.select("from"); let mut query = self.selection.select("from");
query = query.arg("address", address).unwrap(); query = query.arg("address", address);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -232,14 +230,14 @@ impl Container {
pub fn id(&self) -> ContainerId { pub fn id(&self) -> ContainerId {
let mut query = self.selection.select("id"); let mut query = self.selection.select("id");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn label(&self, name: String) -> String { pub fn label(&self, name: String) -> String {
let mut query = self.selection.select("label"); let mut query = self.selection.select("label");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn labels(&self) -> Vec<Label> { pub fn labels(&self) -> Vec<Label> {
let mut query = self.selection.select("labels"); let mut query = self.selection.select("labels");
@ -253,15 +251,15 @@ impl Container {
pub fn mounts(&self) -> Vec<String> { pub fn mounts(&self) -> Vec<String> {
let mut query = self.selection.select("mounts"); let mut query = self.selection.select("mounts");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn pipeline(&self, name: String, opts: Option<ContainerPipelineOpts>) -> Container { pub fn pipeline(&self, name: String, opts: Option<ContainerPipelineOpts>) -> Container {
let mut query = self.selection.select("pipeline"); let mut query = self.selection.select("pipeline");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(description) = opts.description { if let Some(description) = opts.description {
query = query.arg("description", description).unwrap(); query = query.arg("description", description);
} }
} }
@ -274,19 +272,19 @@ impl Container {
pub fn platform(&self) -> Platform { pub fn platform(&self) -> Platform {
let mut query = self.selection.select("platform"); let mut query = self.selection.select("platform");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn publish(&self, address: String, opts: Option<ContainerPublishOpts>) -> String { pub fn publish(&self, address: String, opts: Option<ContainerPublishOpts>) -> String {
let mut query = self.selection.select("publish"); let mut query = self.selection.select("publish");
query = query.arg("address", address).unwrap(); query = query.arg("address", address);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(platform_variants) = opts.platform_variants { if let Some(platform_variants) = opts.platform_variants {
query = query.arg("platformVariants", platform_variants).unwrap(); query = query.arg("platformVariants", platform_variants);
} }
} }
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn rootfs(&self) -> Directory { pub fn rootfs(&self) -> Directory {
let mut query = self.selection.select("rootfs"); let mut query = self.selection.select("rootfs");
@ -300,24 +298,24 @@ impl Container {
pub fn stderr(&self) -> String { pub fn stderr(&self) -> String {
let mut query = self.selection.select("stderr"); let mut query = self.selection.select("stderr");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn stdout(&self) -> String { pub fn stdout(&self) -> String {
let mut query = self.selection.select("stdout"); let mut query = self.selection.select("stdout");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn user(&self) -> String { pub fn user(&self) -> String {
let mut query = self.selection.select("user"); let mut query = self.selection.select("user");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn with_default_args(&self, opts: Option<ContainerWithDefaultArgsOpts>) -> Container { pub fn with_default_args(&self, opts: Option<ContainerWithDefaultArgsOpts>) -> Container {
let mut query = self.selection.select("withDefaultArgs"); let mut query = self.selection.select("withDefaultArgs");
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(args) = opts.args { if let Some(args) = opts.args {
query = query.arg("args", args).unwrap(); query = query.arg("args", args);
} }
} }
@ -335,14 +333,14 @@ impl Container {
) -> Container { ) -> Container {
let mut query = self.selection.select("withDirectory"); let mut query = self.selection.select("withDirectory");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
query = query.arg("directory", directory).unwrap(); query = query.arg("directory", directory);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(exclude) = opts.exclude { if let Some(exclude) = opts.exclude {
query = query.arg("exclude", exclude).unwrap(); query = query.arg("exclude", exclude);
} }
if let Some(include) = opts.include { if let Some(include) = opts.include {
query = query.arg("include", include).unwrap(); query = query.arg("include", include);
} }
} }
@ -355,7 +353,7 @@ impl Container {
pub fn with_entrypoint(&self, args: Vec<String>) -> Container { pub fn with_entrypoint(&self, args: Vec<String>) -> Container {
let mut query = self.selection.select("withEntrypoint"); let mut query = self.selection.select("withEntrypoint");
query = query.arg("args", args).unwrap(); query = query.arg("args", args);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -366,8 +364,8 @@ impl Container {
pub fn with_env_variable(&self, name: String, value: String) -> Container { pub fn with_env_variable(&self, name: String, value: String) -> Container {
let mut query = self.selection.select("withEnvVariable"); let mut query = self.selection.select("withEnvVariable");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
query = query.arg("value", value).unwrap(); query = query.arg("value", value);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -378,24 +376,22 @@ impl Container {
pub fn with_exec(&self, args: Vec<String>, opts: Option<ContainerWithExecOpts>) -> Container { pub fn with_exec(&self, args: Vec<String>, opts: Option<ContainerWithExecOpts>) -> Container {
let mut query = self.selection.select("withExec"); let mut query = self.selection.select("withExec");
query = query.arg("args", args).unwrap(); query = query.arg("args", args);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(stdin) = opts.stdin { if let Some(stdin) = opts.stdin {
query = query.arg("stdin", stdin).unwrap(); query = query.arg("stdin", stdin);
} }
if let Some(redirect_stdout) = opts.redirect_stdout { if let Some(redirect_stdout) = opts.redirect_stdout {
query = query.arg("redirectStdout", redirect_stdout).unwrap(); query = query.arg("redirectStdout", redirect_stdout);
} }
if let Some(redirect_stderr) = opts.redirect_stderr { if let Some(redirect_stderr) = opts.redirect_stderr {
query = query.arg("redirectStderr", redirect_stderr).unwrap(); query = query.arg("redirectStderr", redirect_stderr);
} }
if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting { if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
query = query query = query.arg(
.arg(
"experimentalPrivilegedNesting", "experimentalPrivilegedNesting",
experimental_privileged_nesting, experimental_privileged_nesting,
) );
.unwrap();
} }
} }
@ -408,7 +404,7 @@ impl Container {
pub fn with_fs(&self, id: DirectoryId) -> Container { pub fn with_fs(&self, id: DirectoryId) -> Container {
let mut query = self.selection.select("withFS"); let mut query = self.selection.select("withFS");
query = query.arg("id", id).unwrap(); query = query.arg("id", id);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -424,11 +420,11 @@ impl Container {
) -> Container { ) -> Container {
let mut query = self.selection.select("withFile"); let mut query = self.selection.select("withFile");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
query = query.arg("source", source).unwrap(); query = query.arg("source", source);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(permissions) = opts.permissions { if let Some(permissions) = opts.permissions {
query = query.arg("permissions", permissions).unwrap(); query = query.arg("permissions", permissions);
} }
} }
@ -441,8 +437,8 @@ impl Container {
pub fn with_label(&self, name: String, value: String) -> Container { pub fn with_label(&self, name: String, value: String) -> Container {
let mut query = self.selection.select("withLabel"); let mut query = self.selection.select("withLabel");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
query = query.arg("value", value).unwrap(); query = query.arg("value", value);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -458,14 +454,14 @@ impl Container {
) -> Container { ) -> Container {
let mut query = self.selection.select("withMountedCache"); let mut query = self.selection.select("withMountedCache");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
query = query.arg("cache", cache).unwrap(); query = query.arg("cache", cache);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(source) = opts.source { if let Some(source) = opts.source {
query = query.arg("source", source).unwrap(); query = query.arg("source", source);
} }
if let Some(sharing) = opts.sharing { if let Some(sharing) = opts.sharing {
query = query.arg("sharing", sharing).unwrap(); query = query.arg("sharing", sharing);
} }
} }
@ -478,8 +474,8 @@ impl Container {
pub fn with_mounted_directory(&self, path: String, source: DirectoryId) -> Container { pub fn with_mounted_directory(&self, path: String, source: DirectoryId) -> Container {
let mut query = self.selection.select("withMountedDirectory"); let mut query = self.selection.select("withMountedDirectory");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
query = query.arg("source", source).unwrap(); query = query.arg("source", source);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -490,8 +486,8 @@ impl Container {
pub fn with_mounted_file(&self, path: String, source: FileId) -> Container { pub fn with_mounted_file(&self, path: String, source: FileId) -> Container {
let mut query = self.selection.select("withMountedFile"); let mut query = self.selection.select("withMountedFile");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
query = query.arg("source", source).unwrap(); query = query.arg("source", source);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -502,8 +498,8 @@ impl Container {
pub fn with_mounted_secret(&self, path: String, source: SecretId) -> Container { pub fn with_mounted_secret(&self, path: String, source: SecretId) -> Container {
let mut query = self.selection.select("withMountedSecret"); let mut query = self.selection.select("withMountedSecret");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
query = query.arg("source", source).unwrap(); query = query.arg("source", source);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -514,7 +510,7 @@ impl Container {
pub fn with_mounted_temp(&self, path: String) -> Container { pub fn with_mounted_temp(&self, path: String) -> Container {
let mut query = self.selection.select("withMountedTemp"); let mut query = self.selection.select("withMountedTemp");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -525,13 +521,13 @@ impl Container {
pub fn with_new_file(&self, path: String, opts: Option<ContainerWithNewFileOpts>) -> Container { pub fn with_new_file(&self, path: String, opts: Option<ContainerWithNewFileOpts>) -> Container {
let mut query = self.selection.select("withNewFile"); let mut query = self.selection.select("withNewFile");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(contents) = opts.contents { if let Some(contents) = opts.contents {
query = query.arg("contents", contents).unwrap(); query = query.arg("contents", contents);
} }
if let Some(permissions) = opts.permissions { if let Some(permissions) = opts.permissions {
query = query.arg("permissions", permissions).unwrap(); query = query.arg("permissions", permissions);
} }
} }
@ -549,9 +545,9 @@ impl Container {
) -> Container { ) -> Container {
let mut query = self.selection.select("withRegistryAuth"); let mut query = self.selection.select("withRegistryAuth");
query = query.arg("address", address).unwrap(); query = query.arg("address", address);
query = query.arg("username", username).unwrap(); query = query.arg("username", username);
query = query.arg("secret", secret).unwrap(); query = query.arg("secret", secret);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -562,7 +558,7 @@ impl Container {
pub fn with_rootfs(&self, id: DirectoryId) -> Container { pub fn with_rootfs(&self, id: DirectoryId) -> Container {
let mut query = self.selection.select("withRootfs"); let mut query = self.selection.select("withRootfs");
query = query.arg("id", id).unwrap(); query = query.arg("id", id);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -573,8 +569,8 @@ impl Container {
pub fn with_secret_variable(&self, name: String, secret: SecretId) -> Container { pub fn with_secret_variable(&self, name: String, secret: SecretId) -> Container {
let mut query = self.selection.select("withSecretVariable"); let mut query = self.selection.select("withSecretVariable");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
query = query.arg("secret", secret).unwrap(); query = query.arg("secret", secret);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -585,8 +581,8 @@ impl Container {
pub fn with_unix_socket(&self, path: String, source: SocketId) -> Container { pub fn with_unix_socket(&self, path: String, source: SocketId) -> Container {
let mut query = self.selection.select("withUnixSocket"); let mut query = self.selection.select("withUnixSocket");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
query = query.arg("source", source).unwrap(); query = query.arg("source", source);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -597,7 +593,7 @@ impl Container {
pub fn with_user(&self, name: String) -> Container { pub fn with_user(&self, name: String) -> Container {
let mut query = self.selection.select("withUser"); let mut query = self.selection.select("withUser");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -608,7 +604,7 @@ impl Container {
pub fn with_workdir(&self, path: String) -> Container { pub fn with_workdir(&self, path: String) -> Container {
let mut query = self.selection.select("withWorkdir"); let mut query = self.selection.select("withWorkdir");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -619,7 +615,7 @@ impl Container {
pub fn without_env_variable(&self, name: String) -> Container { pub fn without_env_variable(&self, name: String) -> Container {
let mut query = self.selection.select("withoutEnvVariable"); let mut query = self.selection.select("withoutEnvVariable");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -630,7 +626,7 @@ impl Container {
pub fn without_label(&self, name: String) -> Container { pub fn without_label(&self, name: String) -> Container {
let mut query = self.selection.select("withoutLabel"); let mut query = self.selection.select("withoutLabel");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -641,7 +637,7 @@ impl Container {
pub fn without_mount(&self, path: String) -> Container { pub fn without_mount(&self, path: String) -> Container {
let mut query = self.selection.select("withoutMount"); let mut query = self.selection.select("withoutMount");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -652,7 +648,7 @@ impl Container {
pub fn without_registry_auth(&self, address: String) -> Container { pub fn without_registry_auth(&self, address: String) -> Container {
let mut query = self.selection.select("withoutRegistryAuth"); let mut query = self.selection.select("withoutRegistryAuth");
query = query.arg("address", address).unwrap(); query = query.arg("address", address);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -663,7 +659,7 @@ impl Container {
pub fn without_unix_socket(&self, path: String) -> Container { pub fn without_unix_socket(&self, path: String) -> Container {
let mut query = self.selection.select("withoutUnixSocket"); let mut query = self.selection.select("withoutUnixSocket");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
return Container { return Container {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -674,7 +670,7 @@ impl Container {
pub fn workdir(&self) -> String { pub fn workdir(&self) -> String {
let mut query = self.selection.select("workdir"); let mut query = self.selection.select("workdir");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
} }
pub struct Directory { pub struct Directory {
@ -713,7 +709,7 @@ impl Directory {
pub fn diff(&self, other: DirectoryId) -> Directory { pub fn diff(&self, other: DirectoryId) -> Directory {
let mut query = self.selection.select("diff"); let mut query = self.selection.select("diff");
query = query.arg("other", other).unwrap(); query = query.arg("other", other);
return Directory { return Directory {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -724,7 +720,7 @@ impl Directory {
pub fn directory(&self, path: String) -> Directory { pub fn directory(&self, path: String) -> Directory {
let mut query = self.selection.select("directory"); let mut query = self.selection.select("directory");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
return Directory { return Directory {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -737,16 +733,16 @@ impl Directory {
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(dockerfile) = opts.dockerfile { if let Some(dockerfile) = opts.dockerfile {
query = query.arg("dockerfile", dockerfile).unwrap(); query = query.arg("dockerfile", dockerfile);
} }
if let Some(platform) = opts.platform { if let Some(platform) = opts.platform {
query = query.arg("platform", platform).unwrap(); query = query.arg("platform", platform);
} }
if let Some(build_args) = opts.build_args { if let Some(build_args) = opts.build_args {
query = query.arg("buildArgs", build_args).unwrap(); query = query.arg("buildArgs", build_args);
} }
if let Some(target) = opts.target { if let Some(target) = opts.target {
query = query.arg("target", target).unwrap(); query = query.arg("target", target);
} }
} }
@ -761,23 +757,23 @@ impl Directory {
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(path) = opts.path { if let Some(path) = opts.path {
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
} }
} }
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn export(&self, path: String) -> bool { pub fn export(&self, path: String) -> bool {
let mut query = self.selection.select("export"); let mut query = self.selection.select("export");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn file(&self, path: String) -> File { pub fn file(&self, path: String) -> File {
let mut query = self.selection.select("file"); let mut query = self.selection.select("file");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
return File { return File {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -788,12 +784,12 @@ impl Directory {
pub fn id(&self) -> DirectoryId { pub fn id(&self) -> DirectoryId {
let mut query = self.selection.select("id"); let mut query = self.selection.select("id");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn load_project(&self, config_path: String) -> Project { pub fn load_project(&self, config_path: String) -> Project {
let mut query = self.selection.select("loadProject"); let mut query = self.selection.select("loadProject");
query = query.arg("configPath", config_path).unwrap(); query = query.arg("configPath", config_path);
return Project { return Project {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -804,10 +800,10 @@ impl Directory {
pub fn pipeline(&self, name: String, opts: Option<DirectoryPipelineOpts>) -> Directory { pub fn pipeline(&self, name: String, opts: Option<DirectoryPipelineOpts>) -> Directory {
let mut query = self.selection.select("pipeline"); let mut query = self.selection.select("pipeline");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(description) = opts.description { if let Some(description) = opts.description {
query = query.arg("description", description).unwrap(); query = query.arg("description", description);
} }
} }
@ -825,14 +821,14 @@ impl Directory {
) -> Directory { ) -> Directory {
let mut query = self.selection.select("withDirectory"); let mut query = self.selection.select("withDirectory");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
query = query.arg("directory", directory).unwrap(); query = query.arg("directory", directory);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(exclude) = opts.exclude { if let Some(exclude) = opts.exclude {
query = query.arg("exclude", exclude).unwrap(); query = query.arg("exclude", exclude);
} }
if let Some(include) = opts.include { if let Some(include) = opts.include {
query = query.arg("include", include).unwrap(); query = query.arg("include", include);
} }
} }
@ -850,11 +846,11 @@ impl Directory {
) -> Directory { ) -> Directory {
let mut query = self.selection.select("withFile"); let mut query = self.selection.select("withFile");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
query = query.arg("source", source).unwrap(); query = query.arg("source", source);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(permissions) = opts.permissions { if let Some(permissions) = opts.permissions {
query = query.arg("permissions", permissions).unwrap(); query = query.arg("permissions", permissions);
} }
} }
@ -871,10 +867,10 @@ impl Directory {
) -> Directory { ) -> Directory {
let mut query = self.selection.select("withNewDirectory"); let mut query = self.selection.select("withNewDirectory");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(permissions) = opts.permissions { if let Some(permissions) = opts.permissions {
query = query.arg("permissions", permissions).unwrap(); query = query.arg("permissions", permissions);
} }
} }
@ -892,11 +888,11 @@ impl Directory {
) -> Directory { ) -> Directory {
let mut query = self.selection.select("withNewFile"); let mut query = self.selection.select("withNewFile");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
query = query.arg("contents", contents).unwrap(); query = query.arg("contents", contents);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(permissions) = opts.permissions { if let Some(permissions) = opts.permissions {
query = query.arg("permissions", permissions).unwrap(); query = query.arg("permissions", permissions);
} }
} }
@ -909,7 +905,7 @@ impl Directory {
pub fn with_timestamps(&self, timestamp: isize) -> Directory { pub fn with_timestamps(&self, timestamp: isize) -> Directory {
let mut query = self.selection.select("withTimestamps"); let mut query = self.selection.select("withTimestamps");
query = query.arg("timestamp", timestamp).unwrap(); query = query.arg("timestamp", timestamp);
return Directory { return Directory {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -920,7 +916,7 @@ impl Directory {
pub fn without_directory(&self, path: String) -> Directory { pub fn without_directory(&self, path: String) -> Directory {
let mut query = self.selection.select("withoutDirectory"); let mut query = self.selection.select("withoutDirectory");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
return Directory { return Directory {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -931,7 +927,7 @@ impl Directory {
pub fn without_file(&self, path: String) -> Directory { pub fn without_file(&self, path: String) -> Directory {
let mut query = self.selection.select("withoutFile"); let mut query = self.selection.select("withoutFile");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
return Directory { return Directory {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -950,12 +946,12 @@ impl EnvVariable {
pub fn name(&self) -> String { pub fn name(&self) -> String {
let mut query = self.selection.select("name"); let mut query = self.selection.select("name");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn value(&self) -> String { pub fn value(&self) -> String {
let mut query = self.selection.select("value"); let mut query = self.selection.select("value");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
} }
pub struct File { pub struct File {
@ -968,19 +964,19 @@ impl File {
pub fn contents(&self) -> String { pub fn contents(&self) -> String {
let mut query = self.selection.select("contents"); let mut query = self.selection.select("contents");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn export(&self, path: String) -> bool { pub fn export(&self, path: String) -> bool {
let mut query = self.selection.select("export"); let mut query = self.selection.select("export");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn id(&self) -> FileId { pub fn id(&self) -> FileId {
let mut query = self.selection.select("id"); let mut query = self.selection.select("id");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn secret(&self) -> Secret { pub fn secret(&self) -> Secret {
let mut query = self.selection.select("secret"); let mut query = self.selection.select("secret");
@ -994,12 +990,12 @@ impl File {
pub fn size(&self) -> isize { pub fn size(&self) -> isize {
let mut query = self.selection.select("size"); let mut query = self.selection.select("size");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn with_timestamps(&self, timestamp: isize) -> File { pub fn with_timestamps(&self, timestamp: isize) -> File {
let mut query = self.selection.select("withTimestamps"); let mut query = self.selection.select("withTimestamps");
query = query.arg("timestamp", timestamp).unwrap(); query = query.arg("timestamp", timestamp);
return File { return File {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -1023,17 +1019,17 @@ impl GitRef {
pub fn digest(&self) -> String { pub fn digest(&self) -> String {
let mut query = self.selection.select("digest"); let mut query = self.selection.select("digest");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn tree(&self, opts: Option<GitRefTreeOpts>) -> Directory { pub fn tree(&self, opts: Option<GitRefTreeOpts>) -> Directory {
let mut query = self.selection.select("tree"); let mut query = self.selection.select("tree");
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(ssh_known_hosts) = opts.ssh_known_hosts { if let Some(ssh_known_hosts) = opts.ssh_known_hosts {
query = query.arg("sshKnownHosts", ssh_known_hosts).unwrap(); query = query.arg("sshKnownHosts", ssh_known_hosts);
} }
if let Some(ssh_auth_socket) = opts.ssh_auth_socket { if let Some(ssh_auth_socket) = opts.ssh_auth_socket {
query = query.arg("sshAuthSocket", ssh_auth_socket).unwrap(); query = query.arg("sshAuthSocket", ssh_auth_socket);
} }
} }
@ -1054,7 +1050,7 @@ impl GitRepository {
pub fn branch(&self, name: String) -> GitRef { pub fn branch(&self, name: String) -> GitRef {
let mut query = self.selection.select("branch"); let mut query = self.selection.select("branch");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
return GitRef { return GitRef {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -1065,12 +1061,12 @@ impl GitRepository {
pub fn branches(&self) -> Vec<String> { pub fn branches(&self) -> Vec<String> {
let mut query = self.selection.select("branches"); let mut query = self.selection.select("branches");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn commit(&self, id: String) -> GitRef { pub fn commit(&self, id: String) -> GitRef {
let mut query = self.selection.select("commit"); let mut query = self.selection.select("commit");
query = query.arg("id", id).unwrap(); query = query.arg("id", id);
return GitRef { return GitRef {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -1081,7 +1077,7 @@ impl GitRepository {
pub fn tag(&self, name: String) -> GitRef { pub fn tag(&self, name: String) -> GitRef {
let mut query = self.selection.select("tag"); let mut query = self.selection.select("tag");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
return GitRef { return GitRef {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -1092,7 +1088,7 @@ impl GitRepository {
pub fn tags(&self) -> Vec<String> { pub fn tags(&self) -> Vec<String> {
let mut query = self.selection.select("tags"); let mut query = self.selection.select("tags");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
} }
pub struct Host { pub struct Host {
@ -1114,13 +1110,13 @@ impl Host {
pub fn directory(&self, path: String, opts: Option<HostDirectoryOpts>) -> Directory { pub fn directory(&self, path: String, opts: Option<HostDirectoryOpts>) -> Directory {
let mut query = self.selection.select("directory"); let mut query = self.selection.select("directory");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(exclude) = opts.exclude { if let Some(exclude) = opts.exclude {
query = query.arg("exclude", exclude).unwrap(); query = query.arg("exclude", exclude);
} }
if let Some(include) = opts.include { if let Some(include) = opts.include {
query = query.arg("include", include).unwrap(); query = query.arg("include", include);
} }
} }
@ -1133,7 +1129,7 @@ impl Host {
pub fn env_variable(&self, name: String) -> HostVariable { pub fn env_variable(&self, name: String) -> HostVariable {
let mut query = self.selection.select("envVariable"); let mut query = self.selection.select("envVariable");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
return HostVariable { return HostVariable {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -1144,7 +1140,7 @@ impl Host {
pub fn unix_socket(&self, path: String) -> Socket { pub fn unix_socket(&self, path: String) -> Socket {
let mut query = self.selection.select("unixSocket"); let mut query = self.selection.select("unixSocket");
query = query.arg("path", path).unwrap(); query = query.arg("path", path);
return Socket { return Socket {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -1157,10 +1153,10 @@ impl Host {
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(exclude) = opts.exclude { if let Some(exclude) = opts.exclude {
query = query.arg("exclude", exclude).unwrap(); query = query.arg("exclude", exclude);
} }
if let Some(include) = opts.include { if let Some(include) = opts.include {
query = query.arg("include", include).unwrap(); query = query.arg("include", include);
} }
} }
@ -1190,7 +1186,7 @@ impl HostVariable {
pub fn value(&self) -> String { pub fn value(&self) -> String {
let mut query = self.selection.select("value"); let mut query = self.selection.select("value");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
} }
pub struct Label { pub struct Label {
@ -1203,12 +1199,12 @@ impl Label {
pub fn name(&self) -> String { pub fn name(&self) -> String {
let mut query = self.selection.select("name"); let mut query = self.selection.select("name");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn value(&self) -> String { pub fn value(&self) -> String {
let mut query = self.selection.select("value"); let mut query = self.selection.select("value");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
} }
pub struct Project { pub struct Project {
@ -1239,22 +1235,22 @@ impl Project {
pub fn install(&self) -> bool { pub fn install(&self) -> bool {
let mut query = self.selection.select("install"); let mut query = self.selection.select("install");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn name(&self) -> String { pub fn name(&self) -> String {
let mut query = self.selection.select("name"); let mut query = self.selection.select("name");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn schema(&self) -> String { pub fn schema(&self) -> String {
let mut query = self.selection.select("schema"); let mut query = self.selection.select("schema");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn sdk(&self) -> String { pub fn sdk(&self) -> String {
let mut query = self.selection.select("sdk"); let mut query = self.selection.select("sdk");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
} }
pub struct Query { pub struct Query {
@ -1284,7 +1280,7 @@ impl Query {
pub fn cache_volume(&self, key: String) -> CacheVolume { pub fn cache_volume(&self, key: String) -> CacheVolume {
let mut query = self.selection.select("cacheVolume"); let mut query = self.selection.select("cacheVolume");
query = query.arg("key", key).unwrap(); query = query.arg("key", key);
return CacheVolume { return CacheVolume {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -1297,10 +1293,10 @@ impl Query {
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(id) = opts.id { if let Some(id) = opts.id {
query = query.arg("id", id).unwrap(); query = query.arg("id", id);
} }
if let Some(platform) = opts.platform { if let Some(platform) = opts.platform {
query = query.arg("platform", platform).unwrap(); query = query.arg("platform", platform);
} }
} }
@ -1313,14 +1309,14 @@ impl Query {
pub fn default_platform(&self) -> Platform { pub fn default_platform(&self) -> Platform {
let mut query = self.selection.select("defaultPlatform"); let mut query = self.selection.select("defaultPlatform");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn directory(&self, opts: Option<QueryDirectoryOpts>) -> Directory { pub fn directory(&self, opts: Option<QueryDirectoryOpts>) -> Directory {
let mut query = self.selection.select("directory"); let mut query = self.selection.select("directory");
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(id) = opts.id { if let Some(id) = opts.id {
query = query.arg("id", id).unwrap(); query = query.arg("id", id);
} }
} }
@ -1333,7 +1329,7 @@ impl Query {
pub fn file(&self, id: FileId) -> File { pub fn file(&self, id: FileId) -> File {
let mut query = self.selection.select("file"); let mut query = self.selection.select("file");
query = query.arg("id", id).unwrap(); query = query.arg("id", id);
return File { return File {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -1344,10 +1340,10 @@ impl Query {
pub fn git(&self, url: String, opts: Option<QueryGitOpts>) -> GitRepository { pub fn git(&self, url: String, opts: Option<QueryGitOpts>) -> GitRepository {
let mut query = self.selection.select("git"); let mut query = self.selection.select("git");
query = query.arg("url", url).unwrap(); query = query.arg("url", url);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(keep_git_dir) = opts.keep_git_dir { if let Some(keep_git_dir) = opts.keep_git_dir {
query = query.arg("keepGitDir", keep_git_dir).unwrap(); query = query.arg("keepGitDir", keep_git_dir);
} }
} }
@ -1369,7 +1365,7 @@ impl Query {
pub fn http(&self, url: String) -> File { pub fn http(&self, url: String) -> File {
let mut query = self.selection.select("http"); let mut query = self.selection.select("http");
query = query.arg("url", url).unwrap(); query = query.arg("url", url);
return File { return File {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -1380,10 +1376,10 @@ impl Query {
pub fn pipeline(&self, name: String, opts: Option<QueryPipelineOpts>) -> Query { pub fn pipeline(&self, name: String, opts: Option<QueryPipelineOpts>) -> Query {
let mut query = self.selection.select("pipeline"); let mut query = self.selection.select("pipeline");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(description) = opts.description { if let Some(description) = opts.description {
query = query.arg("description", description).unwrap(); query = query.arg("description", description);
} }
} }
@ -1396,7 +1392,7 @@ impl Query {
pub fn project(&self, name: String) -> Project { pub fn project(&self, name: String) -> Project {
let mut query = self.selection.select("project"); let mut query = self.selection.select("project");
query = query.arg("name", name).unwrap(); query = query.arg("name", name);
return Project { return Project {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -1407,7 +1403,7 @@ impl Query {
pub fn secret(&self, id: SecretId) -> Secret { pub fn secret(&self, id: SecretId) -> Secret {
let mut query = self.selection.select("secret"); let mut query = self.selection.select("secret");
query = query.arg("id", id).unwrap(); query = query.arg("id", id);
return Secret { return Secret {
proc: self.proc.clone(), proc: self.proc.clone(),
@ -1420,7 +1416,7 @@ impl Query {
if let Some(opts) = opts { if let Some(opts) = opts {
if let Some(id) = opts.id { if let Some(id) = opts.id {
query = query.arg("id", id).unwrap(); query = query.arg("id", id);
} }
} }
@ -1441,12 +1437,12 @@ impl Secret {
pub fn id(&self) -> SecretId { pub fn id(&self) -> SecretId {
let mut query = self.selection.select("id"); let mut query = self.selection.select("id");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
pub fn plaintext(&self) -> String { pub fn plaintext(&self) -> String {
let mut query = self.selection.select("plaintext"); let mut query = self.selection.select("plaintext");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
} }
pub struct Socket { pub struct Socket {
@ -1459,7 +1455,7 @@ impl Socket {
pub fn id(&self) -> SocketId { pub fn id(&self) -> SocketId {
let mut query = self.selection.select("id"); let mut query = self.selection.select("id");
query.execute(&graphql_client(&self.conn)).unwrap().unwrap() query.execute(&graphql_client(&self.conn)).unwrap()
} }
} }
#[derive(Serialize)] #[derive(Serialize)]

View File

@ -46,13 +46,13 @@ impl Selection {
} }
} }
pub fn arg<S>(&self, name: &str, value: S) -> eyre::Result<Selection> pub fn arg<S>(&self, name: &str, value: S) -> Selection
where where
S: Serialize, S: Serialize,
{ {
let mut s = self.clone(); let mut s = self.clone();
let val = serde_json::to_string(&value)?; let val = serde_json::to_string(&value).unwrap();
match s.args.as_mut() { match s.args.as_mut() {
Some(args) => { Some(args) => {
@ -65,7 +65,7 @@ impl Selection {
} }
} }
Ok(s) s
} }
pub fn build(&self) -> eyre::Result<String> { pub fn build(&self) -> eyre::Result<String> {
@ -93,7 +93,7 @@ impl Selection {
Ok(fields.join("{") + &"}".repeat(fields.len() - 1)) Ok(fields.join("{") + &"}".repeat(fields.len() - 1))
} }
pub fn execute<D>(&self, gql_client: &gql_client::Client) -> eyre::Result<Option<D>> pub fn execute<D>(&self, gql_client: &gql_client::Client) -> eyre::Result<D>
where where
D: for<'de> Deserialize<'de>, D: for<'de> Deserialize<'de>,
{ {
@ -111,7 +111,7 @@ impl Selection {
let resp: Option<D> = self.unpack_resp(resp)?; let resp: Option<D> = self.unpack_resp(resp)?;
Ok(resp) Ok(resp.unwrap())
} }
fn path(&self) -> Vec<Selection> { fn path(&self) -> Vec<Selection> {
@ -171,10 +171,8 @@ mod tests {
.select("core") .select("core")
.select("image") .select("image")
.arg("ref", "alpine") .arg("ref", "alpine")
.unwrap()
.select("file") .select("file")
.arg("path", "/etc/alpine-release") .arg("path", "/etc/alpine-release");
.unwrap();
let query = root.build().unwrap(); let query = root.build().unwrap();
@ -190,10 +188,8 @@ mod tests {
.select("core") .select("core")
.select("image") .select("image")
.arg("ref", "alpine") .arg("ref", "alpine")
.unwrap()
.select_with_alias("foo", "file") .select_with_alias("foo", "file")
.arg("path", "/etc/alpine-release") .arg("path", "/etc/alpine-release");
.unwrap();
let query = root.build().unwrap(); let query = root.build().unwrap();
@ -208,10 +204,8 @@ mod tests {
let root = query() let root = query()
.select("a") .select("a")
.arg("arg", "one") .arg("arg", "one")
.unwrap()
.select("b") .select("b")
.arg("arg", "two") .arg("arg", "two");
.unwrap();
let query = root.build().unwrap(); let query = root.build().unwrap();
@ -222,7 +216,7 @@ mod tests {
fn test_vec_arg() { fn test_vec_arg() {
let input = vec!["some-string"]; let input = vec!["some-string"];
let root = query().select("a").arg("arg", input).unwrap(); let root = query().select("a").arg("arg", input);
let query = root.build().unwrap(); let query = root.build().unwrap();
assert_eq!(query, r#"query{a(arg:["some-string"])}"#.to_string()) assert_eq!(query, r#"query{a(arg:["some-string"])}"#.to_string())
@ -232,7 +226,7 @@ mod tests {
fn test_ref_slice_arg() { fn test_ref_slice_arg() {
let input = &["some-string"]; let input = &["some-string"];
let root = query().select("a").arg("arg", input).unwrap(); let root = query().select("a").arg("arg", input);
let query = root.build().unwrap(); let query = root.build().unwrap();
assert_eq!(query, r#"query{a(arg:["some-string"])}"#.to_string()) assert_eq!(query, r#"query{a(arg:["some-string"])}"#.to_string())
@ -242,7 +236,7 @@ mod tests {
fn test_stringb_arg() { fn test_stringb_arg() {
let input = "some-string".to_string(); let input = "some-string".to_string();
let root = query().select("a").arg("arg", input).unwrap(); let root = query().select("a").arg("arg", input);
let query = root.build().unwrap(); let query = root.build().unwrap();
assert_eq!(query, r#"query{a(arg:"some-string")}"#.to_string()) assert_eq!(query, r#"query{a(arg:"some-string")}"#.to_string())
@ -275,7 +269,7 @@ mod tests {
})), })),
}; };
let root = query().select("a").arg("arg", input).unwrap(); let root = query().select("a").arg("arg", input);
let query = root.build().unwrap(); let query = root.build().unwrap();
assert_eq!( assert_eq!(