From 32cc43cb8359c20d5bed53bef271881170b676c0 Mon Sep 17 00:00:00 2001 From: Pavel Zarecky Date: Wed, 3 Dec 2025 12:11:11 +0800 Subject: [PATCH] * use BigEndian for length representation --- ndef/src/message.rs | 2 +- ndef/src/record.rs | 20 +++++++------------- ndef/src/tag.rs | 15 ++++++++------- 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/ndef/src/message.rs b/ndef/src/message.rs index be86186..037aa35 100644 --- a/ndef/src/message.rs +++ b/ndef/src/message.rs @@ -159,7 +159,7 @@ mod tests { .unwrap(); let message = NdefMessage::from(record); let buffer = message.to_buffer().unwrap(); - let expect = "c4022c0100005370abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab"; + let expect = "c4020000012c5370abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab"; assert_eq!(expect, hex::encode(buffer)); } diff --git a/ndef/src/record.rs b/ndef/src/record.rs index ac043ca..289810b 100644 --- a/ndef/src/record.rs +++ b/ndef/src/record.rs @@ -1,7 +1,7 @@ -use crate::{payload::*, error::NdefError}; use crate::*; +use crate::{error::NdefError, payload::*}; use anyhow::anyhow; -use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; +use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; use std::io::{prelude::*, Cursor}; #[derive(Debug, Clone)] @@ -88,7 +88,7 @@ impl NdefRecord { .map_err(|_| anyhow!("Failed to write ID length"))?; } else { output - .write_u32::(self.payload.len() as u32) + .write_u32::(self.payload.len() as u32) .map_err(|_| anyhow!("Failed to write payload length"))?; } if let Some(id) = self.id.as_ref() { @@ -115,23 +115,17 @@ impl NdefRecord { let tnf = TNF::from_repr(flags & 0x07).ok_or_else(|| NdefError::InvalidTnf)?; let flags = RecordFlags::from_bits_retain(flags); - let type_len = reader - .read_u8() - .map_err(|_| NdefError::InvalidTagLength)?; + let type_len = reader.read_u8().map_err(|_| NdefError::InvalidTagLength)?; let payload_len = if flags & RecordFlags::SR == RecordFlags::SR { - reader - .read_u8() - .map_err(|_| NdefError::InvalidPayload)? as u32 + reader.read_u8().map_err(|_| NdefError::InvalidPayload)? as u32 } else { reader - .read_u32::() + .read_u32::() .map_err(|_| NdefError::InvalidPayload)? }; let id_len = if flags & RecordFlags::IL == RecordFlags::IL { - reader - .read_u8() - .map_err(|_| NdefError::InvalidId)? + reader.read_u8().map_err(|_| NdefError::InvalidId)? } else { 0 }; diff --git a/ndef/src/tag.rs b/ndef/src/tag.rs index 2f27412..45e06cb 100644 --- a/ndef/src/tag.rs +++ b/ndef/src/tag.rs @@ -1,6 +1,6 @@ -use byteorder::{LittleEndian, WriteBytesExt}; -use std::io::{Cursor, Write}; use anyhow::Result; +use byteorder::{BigEndian, WriteBytesExt}; +use std::io::{Cursor, Write}; use crate::message::NdefMessage; @@ -82,9 +82,7 @@ impl TlvValue { writer.write_all(value).unwrap(); } else { writer.write_u8(0xff).unwrap(); - writer - .write_u16::(value.len() as u16) - .unwrap(); + writer.write_u16::(value.len() as u16).unwrap(); writer.write_all(value).unwrap(); } } @@ -232,9 +230,9 @@ mod tests { #[test] fn test_ndef_message() { use super::*; + use crate::payload::*; use crate::record::NdefRecord; use crate::*; - use crate::payload::*; let record1 = NdefRecord::builder() .tnf(TNF::WellKnown) @@ -244,7 +242,10 @@ mod tests { let record2 = NdefRecord::builder() .tnf(TNF::External) - .payload(&ExternalPayload::from_static(b"android.com:pkg", b"com.tencent.mm")) + .payload(&ExternalPayload::from_static( + b"android.com:pkg", + b"com.tencent.mm", + )) .build() .unwrap();