mod client; mod field; mod queue; mod session; mod utils; use client::{Client, ClientLink, Reply, Request}; use field::Field; use queue::Queue; use session::Session; #[derive(Clone)] pub struct MoreThanText { client_link: ClientLink, } impl MoreThanText { pub fn new() -> Self { let queue = Queue::new(); Session::start(queue.clone()); Self { client_link: Client::start(queue.clone()), } } pub fn request(&mut self, session: Option) -> Reply where F: Into, { let sess = match session { Some(id) => Some(id.into()), None => None, }; let req = Request::new(sess); let rx = self.client_link.send(req); rx.recv().unwrap() } }