#proc-macro #barley #run-time #traits #action #required #barley-runtime

已删除 大麦-proc

为大麦提供的进程宏crate

0.2.0 2023年5月25日
0.1.0 2023年5月23日
0.0.1 2023年5月17日

#5#barley

每月下载量 48次

MIT/Apache

11KB
238

大麦-proc

此crate为大麦工作流引擎提供进程宏。

大麦-proc 中导出所有函数,并使用 大麦-runtime 进行导出。由于运行时是必需的,因此不应直接导入此crate。请使用 大麦-runtime crate。

用法

use barley_runtime::*;
use async_trait::async_trait;
use std::sync::Arc;
use tokio::sync::RwLock;

#[barley_action]
#[derive(Default)]
struct Print {
  message: String
}

impl Print {
  fn new(message: String) -> Self {
    // `Default` is required to set the internal
    // barley state.
    Self { message, ..Default::default() }
  }
}

#[barley_action]
#[async_trait]
impl Action for Print {
  async fn check(&self, ctx: Arc<RwLock<Context>>) -> Result<bool> {
    Ok(false)
  }

  async fn perform(&mut self, ctx: Arc<RwLock<Context>>) -> Result<Option<ActionOutput>> {
    println!("{}", self.message);
    Ok(None)
  }

  async fn rollback(&mut self, ctx: Arc<RwLock<Context>>) -> Result<()> {
    Ok(())
  }
}

依赖项

~310–760KB
~18K SLoC