quik_core/
server.rs

1use quik_util::*;
2
3use crate::crypto::Crypto;
4use crate::frame::Frame;
5use crate::packet::Packet;
6use crate::transport::Io;
7
8// if this needs to be mutable inside, then it should use a mutex internally
9pub trait Handler {
10    fn handle<'a>(
11        &self,
12        packet: Packet<'a>,
13        frames: impl Iterator<Item = Result<Frame<'a>>>,
14    ) -> impl Future<Output = Result<()>>;
15}
16
17pub trait Server {
18    type Crypto: Crypto;
19    // UDP transport
20    type Io: Io;
21    type Handler: Handler;
22}