commit d39b2706e0483ea00a73d039c242d2b13ece06a4
parent d82d7fd00da3a0c90c249efc3ce0fcb361a7bf41
Author: Ken Sedgwick <ken@bonsai.com>
Date: Thu, 20 Feb 2025 11:13:32 -0800
add diagnostic string to DecodeFailed
Diffstat:
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/crates/enostr/src/error.rs b/crates/enostr/src/error.rs
@@ -7,8 +7,8 @@ pub enum Error {
#[error("message is empty")]
Empty,
- #[error("decoding failed")]
- DecodeFailed,
+ #[error("decoding failed: {0}")]
+ DecodeFailed(String),
#[error("hex decoding failed")]
HexDecodeFailed,
diff --git a/crates/enostr/src/relay/message.rs b/crates/enostr/src/relay/message.rs
@@ -130,13 +130,13 @@ impl<'a> RelayMessage<'a> {
} else if booly == "false" {
false
} else {
- return Err(Error::DecodeFailed);
+ return Err(Error::DecodeFailed("bad boolean value".into()));
};
return Ok(Self::ok(event_id, status, "fixme"));
}
- Err(Error::DecodeFailed)
+ Err(Error::DecodeFailed("unrecognized message type".into()))
}
}
diff --git a/crates/enostr/src/relay/subs_debug.rs b/crates/enostr/src/relay/subs_debug.rs
@@ -225,7 +225,6 @@ fn calculate_ws_message_size(message: &WsMessage) -> usize {
fn calculate_error_size(error: &Error) -> usize {
match error {
Error::Empty
- | Error::DecodeFailed
| Error::HexDecodeFailed
| Error::InvalidBech32
| Error::InvalidByteSize
@@ -233,6 +232,8 @@ fn calculate_error_size(error: &Error) -> usize {
| Error::Io(_)
| Error::InvalidPublicKey => mem::size_of_val(error), // No heap usage
+ Error::DecodeFailed(string) => mem::size_of_val(error) + string.len(),
+
Error::Json(json_err) => mem::size_of_val(error) + json_err.to_string().len(),
Error::Nostrdb(nostrdb_err) => mem::size_of_val(error) + nostrdb_err.to_string().len(),