From c19ac306a12eeeb1e5cbf2aceb316d2f11a907c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Wed, 21 Jan 2026 14:44:37 +0100 Subject: [PATCH] refactor: Rename invalid version into invalid type --- crates/matrix-sdk-crypto/src/types/qr_login/mod.rs | 14 ++++++++------ .../src/types/qr_login/msc_4108.rs | 6 ++++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/crates/matrix-sdk-crypto/src/types/qr_login/mod.rs b/crates/matrix-sdk-crypto/src/types/qr_login/mod.rs index 035c5a6af..aa4326a34 100644 --- a/crates/matrix-sdk-crypto/src/types/qr_login/mod.rs +++ b/crates/matrix-sdk-crypto/src/types/qr_login/mod.rs @@ -22,9 +22,6 @@ use thiserror::Error; mod msc_4108; -/// The version of the QR code data, currently only one version is specified. -const VERSION: u8 = 0x02; - pub use msc_4108::{QrCodeMode, QrCodeModeData}; use url::Url; use vodozemac::{Curve25519PublicKey, base64_decode, base64_encode}; @@ -48,9 +45,14 @@ pub enum LoginQrCodeDecodeError { "The QR code data contains an invalid QR code login mode, expected 0x03 or 0x04, got {0}" )] InvalidMode(u8), - /// The QR code data contains an unsupported version. - #[error("The QR code data contains an unsupported version, expected {VERSION}, got {0}")] - InvalidVersion(u8), + /// The QR code data contains an unsupported type. + #[error("The QR code data contains an unsupported type, expected {expected}, got {got}")] + InvalidType { + /// The type we expected. + expected: u8, + /// The type we received. + got: u8, + }, /// The base64 encoded variant of the QR code data is not a valid base64 /// string. #[error("The QR code data could not have been decoded from a base64 string: {0:?}")] diff --git a/crates/matrix-sdk-crypto/src/types/qr_login/msc_4108.rs b/crates/matrix-sdk-crypto/src/types/qr_login/msc_4108.rs index 5e17d897e..064208942 100644 --- a/crates/matrix-sdk-crypto/src/types/qr_login/msc_4108.rs +++ b/crates/matrix-sdk-crypto/src/types/qr_login/msc_4108.rs @@ -21,8 +21,10 @@ use byteorder::{BigEndian, ReadBytesExt}; use url::Url; use vodozemac::Curve25519PublicKey; -use super::{LoginQrCodeDecodeError, VERSION}; +use super::LoginQrCodeDecodeError; +/// The version of the QR code data, currently only one version is specified. +const VERSION: u8 = 0x02; /// The prefix that is used in the QR code data. pub(super) const PREFIX: &[u8] = b"MATRIX"; @@ -175,7 +177,7 @@ impl QrCodeData { Ok(Self { public_key, rendezvous_url, mode_data }) } else { - Err(LoginQrCodeDecodeError::InvalidVersion(version)) + Err(LoginQrCodeDecodeError::InvalidType { expected: VERSION, got: version }) } }