#[derive(Clone)]
pub struct Settings {
pub(crate) inner: crate::sys::Settings,
}
pub const COMMON_BAUD_RATES: &[u32] = &[
4800,
9600,
19200,
38400,
57600,
115200,
230400,
460800,
500000,
576000,
921600,
1000000,
1500000,
2000000,
];
#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
pub enum CharSize {
Bits5,
Bits6,
Bits7,
Bits8,
}
#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
pub enum StopBits {
One,
Two,
}
#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
pub enum Parity {
None,
Odd,
Even,
}
#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
pub enum FlowControl {
None,
XonXoff,
RtsCts,
}
impl Settings {
pub fn set_baud_rate(&mut self, baud_rate: u32) -> std::io::Result<()> {
self.inner.set_baud_rate(baud_rate)
}
pub fn get_baud_rate(&self) -> std::io::Result<u32> {
self.inner.get_baud_rate()
}
pub fn set_char_size(&mut self, char_size: CharSize) {
self.inner.set_char_size(char_size)
}
pub fn get_char_size(&self) -> std::io::Result<CharSize> {
self.inner.get_char_size()
}
pub fn set_stop_bits(&mut self, stop_bits: StopBits) {
self.inner.set_stop_bits(stop_bits)
}
pub fn get_stop_bits(&self) -> std::io::Result<StopBits> {
self.inner.get_stop_bits()
}
pub fn set_parity(&mut self, parity: Parity) {
self.inner.set_parity(parity)
}
pub fn get_parity(&self) -> std::io::Result<Parity> {
self.inner.get_parity()
}
pub fn set_flow_control(&mut self, flow_control: FlowControl) {
self.inner.set_flow_control(flow_control)
}
pub fn get_flow_control(&self) -> std::io::Result<FlowControl> {
self.inner.get_flow_control()
}
}