iridis_api/io/
raw_input.rs1use crate::prelude::*;
2
3#[derive(Debug)]
5pub struct RawInput {
6 pub rx: MessageReceiver,
8
9 pub source: NodeLayout,
11 pub layout: InputLayout,
13}
14
15impl RawInput {
16 pub fn new(rx: MessageReceiver, source: NodeLayout, layout: InputLayout) -> Self {
18 Self { rx, source, layout }
19 }
20
21 pub async fn recv(&mut self) -> Result<DataflowMessage> {
23 let message = self
24 .rx
25 .recv()
26 .await
27 .ok_or_eyre(report_error_receiving(&self.source, &self.layout))?;
28
29 Ok(message)
30 }
31}