diff options
| -rw-r--r-- | crates/teleia/src/fig.rs | 9 |
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>, |
