pub mod error;
#[cfg(target_arch = "wasm32")]
pub mod wasm {
pub use crate::guest::wasm::BoxedFuture;
use crate::guest::BoxedError;
pub trait Dispatcher {
fn dispatch(&self, op: &'static str, payload: &'static [u8]) -> BoxedFuture<Result<Vec<u8>, BoxedError>>;
}
}
#[cfg(not(target_arch = "wasm32"))]
pub mod native {
use wasmflow_streams::PacketStream;
pub use crate::guest::native::BoxedFuture;
use crate::guest::BoxedError;
pub trait Dispatcher {
fn dispatch(&self, payload: wasmflow_invocation::Invocation) -> BoxedFuture<Result<PacketStream, BoxedError>>;
}
}
pub trait BatchedJobExecutor {
type Payload: std::fmt::Debug;
type Config: std::fmt::Debug;
type Return: Send + Sync;
#[cfg(not(target_arch = "wasm32"))]
fn execute(
&self,
payload: wasmflow_boundary::IncomingPayload<Self::Payload, Self::Config>,
) -> super::native::BoxedFuture<Result<Self::Return, Box<dyn std::error::Error + Send + Sync>>>;
#[cfg(target_arch = "wasm32")]
fn execute(
&self,
payload: wasmflow_boundary::IncomingPayload<Self::Payload, Self::Config>,
) -> super::wasm::BoxedFuture<Result<Self::Return, Box<dyn std::error::Error + Send + Sync>>>;
}