From 03a4835ed86de500f4fb244a7d4953d8ec358c8e Mon Sep 17 00:00:00 2001 From: Alex Janka Date: Tue, 5 Mar 2024 10:06:06 +1100 Subject: [PATCH] tlv8 wronglength error more descriptive --- homekit-controller/src/tlv8/mod.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/homekit-controller/src/tlv8/mod.rs b/homekit-controller/src/tlv8/mod.rs index 26e1e10..794e439 100644 --- a/homekit-controller/src/tlv8/mod.rs +++ b/homekit-controller/src/tlv8/mod.rs @@ -80,7 +80,10 @@ pub fn decode(data: &[u8]) -> Result>, TlvCodecError> { let tlv_len = (data[1] as usize) + 2; let current; if tlv_len > data.len() { - return Err(TlvCodecError::WrongLength); + return Err(TlvCodecError::WrongLength { + expected: tlv_len, + got: data.len(), + }); } (current, data) = data.split_at(tlv_len); @@ -90,7 +93,10 @@ pub fn decode(data: &[u8]) -> Result>, TlvCodecError> { } if current.len() < tlv_len { - return Err(TlvCodecError::WrongLength); + return Err(TlvCodecError::WrongLength { + expected: tlv_len, + got: current.len(), + }); } let tlv_type = current[0]; @@ -110,7 +116,7 @@ pub enum TlvCodecError { #[error("too short")] TooShort, #[error("wrong length")] - WrongLength, + WrongLength { expected: usize, got: usize }, } pub trait TlvEncode {