mod client; mod field; mod queue; use client::{Client, Reply, Request}; use field::Field; use queue::Message; use std::sync::{ mpsc::{channel, Sender}, Arc, RwLock, }; #[derive(Clone)] pub struct MoreThanText { registry: Arc>>>, tx: Sender, } impl MoreThanText { pub fn new() -> Self { let tx = Client::start(); Self { registry: Arc::new(RwLock::new(Vec::new())), tx: tx, } } pub fn request(&self, _session: Option) -> Reply where F: Into, { let (tx, rx) = channel(); let req = Request::new(tx); self.tx.send(req).unwrap(); rx.recv().unwrap() } }