summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/teleia/src/fig.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/crates/teleia/src/fig.rs b/crates/teleia/src/fig.rs
index 0dd2f68..c584b97 100644
--- a/crates/teleia/src/fig.rs
+++ b/crates/teleia/src/fig.rs
@@ -1,8 +1,15 @@
use std::io::{Read, Write};
-use byteorder::{ReadBytesExt, WriteBytesExt};
+use byteorder::{LE, ReadBytesExt, WriteBytesExt};
use crate::{Erm, WrapErr};
+pub fn read_length_prefixed_utf8<R>(r: &mut R) -> Erm<String> where R: std::io::Read {
+ let len = r.read_u32::<LE>()?;
+ let mut bs = vec![0; len as usize];
+ r.read_exact(&mut bs)?;
+ Ok(String::from_utf8(bs)?)
+}
+
#[derive(Debug, Clone)]
pub struct BinaryMessage {
pub event: Vec<u8>,