提交 4521b37b authored 作者: Serhij S's avatar Serhij S

iterators for client and receiver

上级 01d9caaa
......@@ -103,7 +103,7 @@ impl Worker<Message, Variables> for ModbusRelays1 {
event_matches!(Message::EnvSensorData(_)),
)
.unwrap();
while let Ok(msg) = hc.recv() {
for msg in hc {
match msg {
Message::EnvSensorData(mut cell) => {
// if data is not expired
......
......@@ -242,6 +242,16 @@ pub struct Client<T: DataDeliveryPolicy + Clone> {
rx: Receiver<T>,
}
impl<T> Iterator for Client<T>
where
T: DataDeliveryPolicy + Clone,
{
type Item = T;
fn next(&mut self) -> Option<Self::Item> {
self.recv().ok()
}
}
impl<T: DataDeliveryPolicy + Clone> Client<T> {
/// Sends a message to hub-subscribed clients, ignores send errors
pub fn send(&self, message: T) {
......
......@@ -257,6 +257,16 @@ where
channel: Channel<T>,
}
impl<T> Iterator for Receiver<T>
where
T: DataDeliveryPolicy,
{
type Item = T;
fn next(&mut self) -> Option<Self::Item> {
self.recv().ok()
}
}
impl<T> Receiver<T>
where
T: DataDeliveryPolicy,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论