morethantext/src/lib.rs

39 lines
783 B
Rust

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<F>(&mut self, session: Option<F>) -> Reply
where
F: Into<Field>,
{
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()
}
}