feat: refactor projects

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
2024-10-26 22:27:16 +02:00
parent 350a3669b0
commit 6729f6e794
20 changed files with 614 additions and 220 deletions

View File

@@ -0,0 +1,9 @@
[package]
name = "cuddle-actions-api"
edition = "2021"
version.workspace = true
[dependencies]
cuddle-lazy.workspace = true
serde.workspace = true
anyhow.workspace = true

View File

@@ -0,0 +1,30 @@
use std::collections::BTreeMap;
use cuddle_lazy::LazyResolve;
use serde::{Deserialize, Serialize};
#[derive(Default)]
pub struct ExecutableActions {
pub actions: Vec<ExecutableAction>,
}
pub struct ExecutableAction {
pub name: String,
pub description: String,
pub flags: BTreeMap<String, ExecutableActionFlag>,
pub call_fn: LazyResolve,
}
impl ExecutableAction {
pub async fn call(&self) -> anyhow::Result<()> {
self.call_fn.call().await?;
Ok(())
}
}
#[derive(Debug, Serialize, Deserialize)]
pub enum ExecutableActionFlag {
String,
Bool,
}