feat(derive): Add derive macro for interface
This commit is contained in:
@@ -7,3 +7,7 @@ edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
char_sdk = { path = "../../../crates/char_sdk" }
|
||||
char_sdk_derive = { path = "../../../crates/char_sdk_derive" }
|
||||
|
||||
eyre = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
|
@@ -1,14 +1,42 @@
|
||||
struct Run;
|
||||
impl char_sdk::Action for Run {}
|
||||
use char_sdk_derive::CharAction;
|
||||
|
||||
#[derive(CharAction)]
|
||||
struct Run;
|
||||
|
||||
impl char_sdk::Action for Run {
|
||||
fn action<'a>(&self) -> char_sdk::ActionArgs<'a> {
|
||||
char_sdk::ActionArgs {
|
||||
name: "run",
|
||||
args: vec![char_sdk::ActionArg::Required {
|
||||
name: "profile",
|
||||
description: "which release profile to use, takes ['release', 'test']",
|
||||
}],
|
||||
}
|
||||
}
|
||||
|
||||
fn execute(&self, args: &[&char_sdk::InputArg]) -> eyre::Result<()> {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(CharAction)]
|
||||
struct Build;
|
||||
impl char_sdk::Action for Build {}
|
||||
|
||||
impl char_sdk::Action for Build {
|
||||
fn action<'a>(&self) -> char_sdk::ActionArgs<'a> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn execute(&self, args: &[&char_sdk::InputArg]) -> eyre::Result<()> {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
char_sdk::CharBuilder::new()
|
||||
.add_context(char_sdk::std::dagger::Context::default())
|
||||
.add_action(Run {})
|
||||
.add_action(Build {})
|
||||
.add_plugin(char_sdk::std::dagger::Plugin::default())
|
||||
.add_plugin(char_sdk::std::k8s::Plugin::default())
|
||||
.execute()
|
||||
.unwrap();
|
||||
|
Reference in New Issue
Block a user