mod error;
pub use error::*;
pub mod parameter_range;
pub mod request;
pub mod response;
#[cfg(test)]
mod tests;
use crate::utils::ContactMessageExt as _;
use derec_proto::{ContactMessage, ContactMode};
pub(super) fn validate_contact_for_mode(
contact: &ContactMessage,
expected: ContactMode,
) -> Result<(), crate::Error> {
if contact.contact_mode != expected as i32 {
#[cfg(feature = "logging")]
tracing::warn!(
contact_mode = contact.contact_mode,
expected = expected as i32,
"contact_mode mismatch"
);
return Err(PairingError::InvalidContactMessage(match expected {
ContactMode::InlineKeys => "expected INLINE_KEYS contact mode",
ContactMode::HashedKeys => "expected HASHED_KEYS contact mode",
ContactMode::NoKeys => "expected NO_KEYS contact mode",
})
.into());
}
contact.validate()
}