January 2019
Intermediate to advanced
520 pages
14h 32m
English
The main function activates a logger and spawns a worker. Then, we extract the ADDRESS environment variable to use this address value to bind a socket of a server. Loot at the following code:
fn main() -> Result<(), Error> { env_logger::init(); let tx = spawn_worker()?; let addr: SocketAddr = env::var("ADDRESS")?.parse()?; let mut io = IoHandler::default(); let sender = Mutex::new(tx.clone()); io.add_method(START_ROLL_CALL, move |_| { trace!("START_ROLL_CALL"); let tx = sender .lock() .map_err(to_internal)?; tx.send(Action::StartRollCall) .map_err(to_internal) .map(|_| Value::Bool(true)) }); let sender = Mutex::new(tx.clone()); io.add_method(MARK_ITSELF, move |_| { trace!("MARK_ITSELF"); let tx = sender .lock() .map_err(to_internal)?; ...Read now
Unlock full access