Fix decode bug

This commit is contained in:
micialware committed 2026-09-15 22:35:36 +03:00
1 parent 206a0c7c82
commit 4c2cd7130b
1 file changed
+10 -5
+10 -5
View File
@@ -7,7 +7,6 @@ use minicbor::data::Type;
enum Command {
Unknown,
Define(String, Box<dyn Display>),
Set(String, Box<dyn Display>),
Push(String, Box<dyn Display>),
}
@@ -41,6 +40,15 @@ fn parse_command(data: &[u8]) -> Result<Command, Error> {
decoder.array()?;
let id = decoder.str()?.to_string();
let value = decode_value(&mut decoder)?;
return Ok(Command::Set(id, value))
}
if data.starts_with(b"PUSH:") {
let payload = &data[b"PUSH:".len()..];
let mut decoder = Decoder::new(&payload);
decoder.array()?;
let id = decoder.str()?.to_string();
let value = decode_value(&mut decoder)?;
return Ok(Command::Push(id, value))
}
Ok(Command::Unknown)
}
@@ -77,10 +85,7 @@ fn decode_value(decoder: &mut Decoder) -> Result<Box<dyn Display>, Error> {
}
Box::new(Line::from(array))
}
// Type::Tag => {
// let tag = decoder.tag()?;
// }
_ => Box::new(false)
_ => { decoder.skip()?; Box::new(false)}
})
}