storage: implement get card by uuid

This commit is contained in:
2026-08-29 14:57:56 +00:00
parent 07593e45f3
commit 9d94120fc1
3 changed files with 59 additions and 31 deletions
+8 -8
View File
@@ -3,20 +3,20 @@ use core::fmt::Display;
use crate::card::model::NfcPayload;
use alloc::string::{String, ToString};
pub fn split_nfc_hex(payload: &[u8]) -> Option<NfcPayload<'_>> {
pub fn split_nfc_hex(payload: &[u8]) -> Option<NfcPayload> {
if payload.len() < 0x35A {
return None;
}
Some(NfcPayload {
event_encoding: &payload[0..2],
event_encoding: payload[0..2].try_into().ok()?,
card_type: payload[2],
card_uuid: &payload[3..5],
_reserved: &payload[5..9],
sprite: &payload[9..0x2DB],
packed_card_text: &payload[0x2DB..0x311],
secret: &payload[0x311..0x329],
_opaque_trailer: &payload[0x329..0x35A],
card_uuid: payload[3..5].try_into().ok()?,
_reserved: payload[5..9].try_into().ok()?,
sprite: payload[9..0x2DB].try_into().ok()?,
packed_card_text: payload[0x2DB..0x311].try_into().ok()?,
secret: payload[0x311..0x329].try_into().ok()?,
_opaque_trailer: payload[0x329..0x35A].try_into().ok()?,
})
}