31 lines
598 B
Rust
31 lines
598 B
Rust
|
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,
|
||
|
}
|