async_tftp/server/
handler.rs1use futures_lite::{AsyncRead, AsyncWrite};
2use std::net::SocketAddr;
3use std::path::Path;
4
5use crate::packet;
6
7#[crate::async_trait]
9pub trait Handler: Send {
10 type Reader: AsyncRead + Unpin + Send + 'static;
11 type Writer: AsyncWrite + Unpin + Send + 'static;
12
13 async fn read_req_open(
15 &mut self,
16 client: &SocketAddr,
17 path: &Path,
18 ) -> Result<(Self::Reader, Option<u64>), packet::Error>;
19
20 async fn write_req_open(
22 &mut self,
23 client: &SocketAddr,
24 path: &Path,
25 size: Option<u64>,
26 ) -> Result<Self::Writer, packet::Error>;
27}