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}