vortex_ipc/messages/
writer_sync.rs1use 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}