cgp_run/
lib.rs

1#![no_std]
2
3use core::future::Future;
4use core::marker::PhantomData;
5
6use cgp_core::prelude::*;
7
8#[cgp_component {
9    provider: Runner,
10    derive_delegate: UseDelegate<Code>,
11}]
12#[async_trait]
13pub trait CanRun<Code>: HasErrorType {
14    async fn run(&self, _code: PhantomData<Code>) -> Result<(), Self::Error>;
15}
16
17#[cgp_component {
18    provider: SendRunner,
19    derive_delegate: UseDelegate<Code>,
20}]
21#[async_trait]
22pub trait CanSendRun<Code>: HasErrorType {
23    fn send_run(
24        &self,
25        _code: PhantomData<Code>,
26    ) -> impl Future<Output = Result<(), Self::Error>> + Send;
27}