Exercise 07-05
authorGreg Burri <greg.burri@gmail.com>
Thu, 24 Oct 2024 14:16:08 +0000 (16:16 +0200)
committerGreg Burri <greg.burri@gmail.com>
Thu, 24 Oct 2024 14:16:08 +0000 (16:16 +0200)
exercises/07_threads/05_channels/src/lib.rs
exercises/07_threads/05_channels/tests/insert.rs

index f049bf3..b8da5b5 100644 (file)
@@ -4,7 +4,7 @@ pub mod data;
 pub mod store;
 
 pub enum Command {
-    Insert(todo!()),
+    Insert(data::TicketDraft),
 }
 
 // Start the system by spawning the server the thread.
@@ -20,4 +20,12 @@ pub fn launch() -> Sender<Command> {
 //  Enter a loop: wait for a command to show up in
 //  the channel, then execute it, then start waiting
 //  for the next command.
-pub fn server(receiver: Receiver<Command>) {}
+pub fn server(receiver: Receiver<Command>) {
+    let mut store = store::TicketStore::new();
+    loop {
+        match receiver.recv() {
+            Ok(Command::Insert(ticket)) => _ = store.add_ticket(ticket),
+            Err(err) => println!("Error during receive: {:?}", err),
+        }
+    }
+}
index 651a467..bb72b1a 100644 (file)
@@ -26,7 +26,7 @@ fn ready() {
     // since our server doesn't expose any **read** actions.
     // We have no way to know if the inserts are actually happening and if they
     // are happening correctly.
-    let move_forward = false;
+    let move_forward = true;
 
     assert!(move_forward);
 }