1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
use parking_lot::RwLock; use std::sync::Arc; #[derive(Clone, Debug, Default)] pub struct Configuration { inner: Arc<RwLock<Inner>>, } impl Configuration { pub fn channel_max(&self) -> u16 { self.inner.read().channel_max } pub(crate) fn set_channel_max(&self, channel_max: u16) { self.inner.write().channel_max = channel_max; } pub fn frame_max(&self) -> u32 { self.inner.read().frame_max } pub(crate) fn set_frame_max(&self, frame_max: u32) { self.inner.write().frame_max = frame_max; } pub fn heartbeat(&self) -> u16 { self.inner.read().heartbeat } pub(crate) fn set_heartbeat(&self, heartbeat: u16) { self.inner.write().heartbeat = heartbeat; } } #[derive(Debug, Default)] struct Inner { channel_max: u16, frame_max: u32, heartbeat: u16, }