Use u16 for raw StatusWords
This commit is contained in:
+9
-9
@@ -280,7 +280,7 @@ impl Response {
|
|||||||
|
|
||||||
/// Get the raw [`StatusWords`] code for this response.
|
/// Get the raw [`StatusWords`] code for this response.
|
||||||
#[cfg(feature = "untested")]
|
#[cfg(feature = "untested")]
|
||||||
pub fn code(&self) -> u32 {
|
pub fn code(&self) -> u16 {
|
||||||
self.status_words.code()
|
self.status_words.code()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,7 +317,7 @@ impl From<Vec<u8>> for Response {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let sw = StatusWords::from(
|
let sw = StatusWords::from(
|
||||||
(bytes[bytes.len() - 2] as u32) << 8 | (bytes[bytes.len() - 1] as u32),
|
(bytes[bytes.len() - 2] as u16) << 8 | (bytes[bytes.len() - 1] as u16),
|
||||||
);
|
);
|
||||||
|
|
||||||
let len = bytes.len() - 2;
|
let len = bytes.len() - 2;
|
||||||
@@ -377,15 +377,15 @@ pub(crate) enum StatusWords {
|
|||||||
NotSupportedError,
|
NotSupportedError,
|
||||||
|
|
||||||
/// Other/unrecognized status words
|
/// Other/unrecognized status words
|
||||||
Other(u32),
|
Other(u16),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl StatusWords {
|
impl StatusWords {
|
||||||
/// Get the numerical response code for these status words
|
/// Get the numerical response code for these status words
|
||||||
pub fn code(self) -> u32 {
|
pub fn code(self) -> u16 {
|
||||||
match self {
|
match self {
|
||||||
StatusWords::None => 0,
|
StatusWords::None => 0,
|
||||||
StatusWords::VerifyFailError { tries } => 0x63c0 & tries as u32,
|
StatusWords::VerifyFailError { tries } => 0x63c0 & tries as u16,
|
||||||
StatusWords::SecurityStatusError => 0x6982,
|
StatusWords::SecurityStatusError => 0x6982,
|
||||||
StatusWords::AuthBlockedError => 0x6983,
|
StatusWords::AuthBlockedError => 0x6983,
|
||||||
StatusWords::IncorrectParamError => 0x6a80,
|
StatusWords::IncorrectParamError => 0x6a80,
|
||||||
@@ -402,8 +402,8 @@ impl StatusWords {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<u32> for StatusWords {
|
impl From<u16> for StatusWords {
|
||||||
fn from(sw: u32) -> Self {
|
fn from(sw: u16) -> Self {
|
||||||
match sw {
|
match sw {
|
||||||
0x0000 => StatusWords::None,
|
0x0000 => StatusWords::None,
|
||||||
sw if sw & 0xfff0 == 0x63c0 => StatusWords::VerifyFailError {
|
sw if sw & 0xfff0 == 0x63c0 => StatusWords::VerifyFailError {
|
||||||
@@ -420,8 +420,8 @@ impl From<u32> for StatusWords {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<StatusWords> for u32 {
|
impl From<StatusWords> for u16 {
|
||||||
fn from(sw: StatusWords) -> u32 {
|
fn from(sw: StatusWords) -> u16 {
|
||||||
sw.code()
|
sw.code()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user