From ded29874cbbfdcea295c5efc724e18ead91cba1b Mon Sep 17 00:00:00 2001 From: Dominik Werder Date: Tue, 15 Feb 2022 22:47:53 +0100 Subject: [PATCH] Read string data from buffer --- disk/src/decode.rs | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/disk/src/decode.rs b/disk/src/decode.rs index 55cd7c4..b0752e1 100644 --- a/disk/src/decode.rs +++ b/disk/src/decode.rs @@ -49,16 +49,32 @@ impl NumFromBytes for BoolNum { } impl NumFromBytes for StringNum { - fn convert(_buf: &[u8], _big_endian: bool) -> StringNum { - netpod::log::error!("TODO NumFromBytes for StringNum"); - todo!() + fn convert(buf: &[u8], _big_endian: bool) -> StringNum { + if false { + // TODO remove + netpod::log::error!("TODO NumFromBytes for StringNum buf len {}", buf.len()); + } + let s = if buf.len() >= 250 { + String::from_utf8_lossy(&buf[..250]) + } else { + String::from_utf8_lossy(buf) + }; + Self(s.into()) } } impl NumFromBytes for StringNum { - fn convert(_buf: &[u8], _big_endian: bool) -> StringNum { - netpod::log::error!("TODO NumFromBytes for StringNum"); - todo!() + fn convert(buf: &[u8], _big_endian: bool) -> StringNum { + if false { + // TODO remove + netpod::log::error!("TODO NumFromBytes for StringNum buf len {}", buf.len()); + } + let s = if buf.len() >= 250 { + String::from_utf8_lossy(&buf[..250]) + } else { + String::from_utf8_lossy(buf) + }; + Self(s.into()) } }