vortex_ipc/messages/
writer_sync.rs

1use std::io::Write;
2
3use vortex_error::VortexResult;
4
5use crate::messages::{EncoderMessage, MessageEncoder};
6
7pub struct SyncMessageWriter<W> {
8    write: W,
9    encoder: MessageEncoder,
10}
11
12impl<W: Write> SyncMessageWriter<W> {
13    pub fn new(write: W) -> Self {
14        Self {
15            write,
16            encoder: MessageEncoder::default(),
17        }
18    }
19
20    pub fn write_message(&mut self, message: EncoderMessage) -> VortexResult<()> {
21        for buffer in self.encoder.encode(message) {
22            self.write.write_all(&buffer)?;
23        }
24        Ok(())
25    }
26}