techne_server/
transport.rs

1use crate::mcp::Bytes;
2
3use futures::channel::mpsc;
4use futures::channel::oneshot;
5
6use std::io;
7
8pub trait Transport {
9    fn accept(&mut self) -> impl Future<Output = io::Result<Action>>;
10}
11
12pub enum Action {
13    Subscribe(Channel),
14    Handle(Bytes, Channel),
15    Quit,
16}
17
18pub type Channel = oneshot::Sender<Result>;
19
20pub enum Result {
21    Accept,
22    Reject,
23    Send(Bytes),
24    Stream(mpsc::Receiver<Bytes>),
25    Unsupported,
26}