Skip to content

Commit 75bc670

Browse files
committed
Use suggested name 'Interface'
1 parent 979803b commit 75bc670

File tree

3 files changed

+39
-8
lines changed

3 files changed

+39
-8
lines changed

src/interface.rs

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
use std::io;
2+
3+
pub enum Interface {
4+
SerialPort(Box<dyn serialport::SerialPort>),
5+
Stdio,
6+
}
7+
8+
impl io::Write for Interface {
9+
fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
10+
match self {
11+
Interface::SerialPort(s) => s.write(buf),
12+
Interface::Stdio => io::stdout().write(buf),
13+
}
14+
}
15+
16+
fn flush(&mut self) -> io::Result<()> {
17+
match self {
18+
Interface::SerialPort(s) => s.flush(),
19+
Interface::Stdio => io::stdout().flush(),
20+
}
21+
}
22+
}
23+
24+
impl io::Read for Interface {
25+
fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
26+
match self {
27+
Interface::SerialPort(s) => s.read(buf),
28+
Interface::Stdio => io::stdin().read(buf),
29+
}
30+
}
31+
}

src/main.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ use crate::io::{save_to_csv, FileOptions};
2121
use crate::serial::{load_serial_settings, serial_thread, Device};
2222

2323
mod data;
24-
mod data_source;
2524
mod gui;
25+
mod interface;
2626
mod io;
2727
mod serial;
2828
mod toggle;

src/serial.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use serde::{Deserialize, Serialize};
88
use serialport::{DataBits, FlowControl, Parity, StopBits};
99

1010
use crate::data::{get_epoch_ms, SerialDirection};
11-
use crate::data_source::DataSource;
11+
use crate::interface::Interface;
1212
use crate::{print_to_console, Packet, Print, APP_INFO, PREFS_KEY_SERIAL};
1313

1414
#[derive(Debug, Clone, Serialize, Deserialize)]
@@ -75,13 +75,13 @@ impl Default for Device {
7575
}
7676
}
7777

78-
fn serial_write(port: &mut BufReader<DataSource>, cmd: &[u8]) -> Result<usize, std::io::Error> {
78+
fn serial_write(port: &mut BufReader<Interface>, cmd: &[u8]) -> Result<usize, std::io::Error> {
7979
let write_port = port.get_mut();
8080
write_port.write(cmd)
8181
}
8282

8383
fn serial_read(
84-
port: &mut BufReader<DataSource>,
84+
port: &mut BufReader<Interface>,
8585
serial_buf: &mut String,
8686
) -> Result<usize, std::io::Error> {
8787
port.read_line(serial_buf)
@@ -116,7 +116,7 @@ pub fn serial_thread(
116116
}
117117
print_to_console(&print_lock, Print::Ok(format!("Connected to stdio")));
118118

119-
BufReader::new(DataSource::Stdio)
119+
BufReader::new(Interface::Stdio)
120120
} else {
121121
match serialport::new(&device.name, device.baud_rate)
122122
.timeout(Duration::from_millis(100))
@@ -133,7 +133,7 @@ pub fn serial_thread(
133133
device.name, device.baud_rate
134134
)),
135135
);
136-
BufReader::new(DataSource::SerialPort(p))
136+
BufReader::new(Interface::SerialPort(p))
137137
}
138138
Err(err) => {
139139
if let Ok(mut write_guard) = device_lock.write() {
@@ -236,7 +236,7 @@ fn disconnected(
236236
}
237237

238238
fn perform_writes(
239-
port: &mut BufReader<DataSource>,
239+
port: &mut BufReader<Interface>,
240240
send_rx: &Receiver<String>,
241241
raw_data_tx: &Sender<Packet>,
242242
t_zero: Instant,
@@ -259,7 +259,7 @@ fn perform_writes(
259259
}
260260
}
261261

262-
fn perform_reads(port: &mut BufReader<DataSource>, raw_data_tx: &Sender<Packet>, t_zero: Instant) {
262+
fn perform_reads(port: &mut BufReader<Interface>, raw_data_tx: &Sender<Packet>, t_zero: Instant) {
263263
let mut buf = "".to_string();
264264
match serial_read(port, &mut buf) {
265265
Ok(_) => {

0 commit comments

Comments
 (0)