use lavina_core::{prelude::Str, repo::Storage}; use std::future::Future; use tokio::io::AsyncWrite; pub mod whois; pub struct HandlerArgs { server_name: Str, client: Str, writer: T, storage: Storage, } impl HandlerArgs where T: AsyncWrite + Unpin, { pub fn new(server_name: Str, client: Str, writer: T, storage: Storage) -> HandlerArgs { HandlerArgs { server_name, client, writer, storage, } } } pub trait Handler where T: AsyncWrite + Unpin, { fn handle(&self, arg: HandlerArgs) -> impl Future>; }