use std::marker::PhantomData;
use serde::Serialize;
use serde::de::DeserializeOwned;
use crate::compile::builder::ExternalPortId;
use crate::live_collections::stream::{Ordering, Retries};
pub struct SimReceiver<T: Serialize + DeserializeOwned, O: Ordering, R: Retries>(
pub(crate) ExternalPortId,
pub(crate) PhantomData<(T, O, R)>,
);
pub struct SimSender<T: Serialize + DeserializeOwned, O: Ordering, R: Retries>(
pub(crate) ExternalPortId,
pub(crate) PhantomData<(T, O, R)>,
);
pub struct SimClusterReceiver<T: Serialize + DeserializeOwned, O: Ordering, R: Retries>(
pub(crate) ExternalPortId,
pub(crate) PhantomData<(T, O, R)>,
);
pub struct SimClusterSender<T: Serialize + DeserializeOwned, O: Ordering, R: Retries>(
pub(crate) ExternalPortId,
pub(crate) PhantomData<(T, O, R)>,
);
#[cfg(stageleft_runtime)]
mod builder;
#[cfg(stageleft_runtime)]
pub mod compiled;
#[cfg(stageleft_runtime)]
pub(crate) mod graph;
#[cfg(stageleft_runtime)]
pub mod flow;
#[cfg(stageleft_runtime)]
#[doc(hidden)]
pub mod runtime;
#[cfg(test)]
mod tests;