From 267a99d6b91e874ad0ed6d05dc4d2a4168ec7955 Mon Sep 17 00:00:00 2001 From: Sam Willcocks Date: Sun, 10 Feb 2019 17:53:24 +0000 Subject: [PATCH] Now it even runs --- src/adaptors.rs | 6 +++--- src/main.rs | 9 ++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/adaptors.rs b/src/adaptors.rs index a38dcb4..4413dd8 100644 --- a/src/adaptors.rs +++ b/src/adaptors.rs @@ -1,4 +1,4 @@ -use crate::TallyState; +use crate::{TallyState,Channel}; use std::sync::mpsc; use std::sync::mpsc::{Sender, Receiver}; use std::thread; @@ -27,8 +27,8 @@ impl FakeAdaptor { println!("Hello, I have {} channels", numchannels); loop { let state = TallyState{ - on_air: Some(rand::thread_rng().gen_range(0, numchannels)), - preview: Some(rand::thread_rng().gen_range(0, numchannels)), + on_air: Channel(Some(rand::thread_rng().gen_range(0, numchannels))), + preview: Channel(Some(rand::thread_rng().gen_range(0, numchannels))), }; sender.send(state).unwrap(); thread::sleep(Duration::new(rand::thread_rng().gen_range(0,5), 0)); diff --git a/src/main.rs b/src/main.rs index a2b1db1..cf537c1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,9 @@ -use std::sync::mpsc; -use std::sync::mpsc::Receiver; mod adaptors; use crate::adaptors::{Adaptor,FakeAdaptor}; use std::fmt; -type Channel = Option; +#[derive(Clone)] +pub struct Channel(Option); #[derive(Clone)] pub struct TallyState { @@ -14,7 +13,7 @@ pub struct TallyState { impl fmt::Display for Channel { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match self { + match self.0 { Some(n) => write!(f, "{}", n), None => write!(f, "-"), } @@ -33,8 +32,8 @@ struct Server { impl Server { fn run(&mut self) { + let rx = self.adaptor.run(); loop{ - let rx = self.adaptor.run(); let newstate = rx.recv().unwrap(); println!("{}", newstate); }