complete chapter 7
This commit is contained in:
@@ -7,23 +7,38 @@ pub mod store;
|
||||
|
||||
#[derive(Clone)]
|
||||
// TODO: flesh out the client implementation.
|
||||
pub struct TicketStoreClient {}
|
||||
pub struct TicketStoreClient {
|
||||
sender: Sender<Command>,
|
||||
}
|
||||
|
||||
impl TicketStoreClient {
|
||||
// Feel free to panic on all errors, for simplicity.
|
||||
pub fn insert(&self, draft: TicketDraft) -> TicketId {
|
||||
todo!()
|
||||
let (sendr, recvr) = std::sync::mpsc::channel::<TicketId>();
|
||||
match self.sender.send(Command::Insert {
|
||||
draft: draft,
|
||||
response_channel: sendr,
|
||||
}) {
|
||||
Ok(a) => {}
|
||||
_ => {}
|
||||
}
|
||||
recvr.recv().ok().unwrap()
|
||||
}
|
||||
|
||||
pub fn get(&self, id: TicketId) -> Option<Ticket> {
|
||||
todo!()
|
||||
let (sendr, recvr) = std::sync::mpsc::channel::<Option<Ticket>>();
|
||||
self.sender.send(Command::Get {
|
||||
id: id,
|
||||
response_channel: sendr,
|
||||
});
|
||||
recvr.recv().unwrap()
|
||||
}
|
||||
}
|
||||
|
||||
pub fn launch() -> TicketStoreClient {
|
||||
let (sender, receiver) = std::sync::mpsc::channel();
|
||||
std::thread::spawn(move || server(receiver));
|
||||
todo!()
|
||||
TicketStoreClient { sender }
|
||||
}
|
||||
|
||||
// No longer public! This becomes an internal detail of the library now.
|
||||
|
||||
Reference in New Issue
Block a user