pub mod dds;
pub use dds::{
discover_channels, wait_for_shutdown, ChunkReader, ChunkWriter, DdsChannel, DdsParticipant,
};
use crate::message::SerialChunk;
use anyhow::Result;
use futures::Stream;
#[allow(dead_code)]
pub trait Transport: Send {
type UpWriter: UpWriter + Send;
type DownWriter: DownWriter + Send;
type UpReader: UpReader + Send;
type DownReader: DownReader + Send;
fn up_writer(&self) -> &Self::UpWriter;
fn down_writer(&self) -> &Self::DownWriter;
fn up_reader(&self) -> &Self::UpReader;
fn down_reader(&self) -> &Self::DownReader;
}
#[allow(dead_code)]
pub trait UpWriter: Send + Sync {
fn write_chunk(&self, chunk: SerialChunk) -> Result<()>;
}
#[allow(dead_code)]
pub trait DownWriter: Send + Sync {
fn write_chunk(&self, chunk: SerialChunk) -> Result<()>;
}
#[allow(dead_code)]
pub trait UpReader: Send {
fn chunk_stream(&mut self) -> impl Stream<Item = Result<SerialChunk>> + Send + '_;
}
#[allow(dead_code)]
pub trait DownReader: Send {
fn chunk_stream(&mut self) -> impl Stream<Item = Result<SerialChunk>> + Send + '_;
}