Rusty Timer

A few applications used for timing, my way of teaching myself rust.
Code on GitHub

This project started from 2 things: I wanted to learn Rust, and we can into some issues at Speed River Timing that I figured would be easy to fix through software.
I started by writing a couple of data structures to parse and store data from the timing system. This included participant and finish records, and being able to parse them from exiting file formats.
Next I wrote a multiplexer for the reads. It connects directly to the reader via a TCP connection, and receives the reads. It then sends them out to each of the connected clients. It can also save all the reads to a file, and print live the people who cross the line.
Once I had mostly finished that up, I wrote a reader emulator to help me continue to develop this program when I didn't have access to the necessary hardware.

One challenge for this project (other than learning Rust) has been getting the multithreading working. This was the first truly threaded program I have made, so so it was my first time using channels (or in this case, a bus).