use crate::canned::MAX_CANNED_ACKS;
pub const CANNED_MESSAGE_MARKER: u8 = 0xAF;
pub const SIGNATURE_SIZE: usize = 64;
pub const CANNED_MESSAGE_UNSIGNED_SIZE: usize = 22;
pub const CANNED_MESSAGE_SIGNED_SIZE: usize = CANNED_MESSAGE_UNSIGNED_SIZE + SIGNATURE_SIZE;
pub const CANNED_ACK_EVENT_MAX_SIZE: usize = 24 + MAX_CANNED_ACKS * 12;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum WireError {
TooShort,
InvalidMarker,
UnknownCode,
ChecksumMismatch,
BufferFull,
InvalidSignature,
}
#[cfg(feature = "std")]
impl std::fmt::Display for WireError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::TooShort => write!(f, "data too short"),
Self::InvalidMarker => write!(f, "invalid marker byte"),
Self::UnknownCode => write!(f, "unknown message code"),
Self::ChecksumMismatch => write!(f, "checksum mismatch"),
Self::BufferFull => write!(f, "buffer capacity exceeded"),
Self::InvalidSignature => write!(f, "invalid or missing signature"),
}
}
}
#[cfg(feature = "std")]
impl std::error::Error for WireError {}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_marker_value() {
assert_eq!(CANNED_MESSAGE_MARKER, 0xAF);
}
}