From 02476faeec20616581189c2a822a417bcafffde5 Mon Sep 17 00:00:00 2001 From: kkazuha7 <213830798+kkazuha7@users.noreply.github.com> Date: Sun, 17 Aug 2025 07:52:17 +0000 Subject: [PATCH 1/2] fix: MagicNumberStringMacro to support custom parsing argument --- Sources/BinaryParsingMacros/MagicNumberStringMacro.swift | 7 ++++++- Tests/BinaryParsingMacrosTests/ParserMacroTests.swift | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Sources/BinaryParsingMacros/MagicNumberStringMacro.swift b/Sources/BinaryParsingMacros/MagicNumberStringMacro.swift index 129bccf..6137e68 100644 --- a/Sources/BinaryParsingMacros/MagicNumberStringMacro.swift +++ b/Sources/BinaryParsingMacros/MagicNumberStringMacro.swift @@ -51,9 +51,14 @@ public struct MagicNumberStringMacro: ExpressionMacro { return "" } + var parsingExpr = "input" + if let parsingArg = node.arguments.first(where: { $0.label?.text == "parsing" }) { + parsingExpr = parsingArg.expression.description + } + return """ _loadAndCheckDirectBytes(\ - parsing: &input, \ + parsing: \(raw: parsingExpr), \ bigEndianValue: 0x\(raw: String(integerValue, radix: 16)) as \(raw: integerType)) """ } diff --git a/Tests/BinaryParsingMacrosTests/ParserMacroTests.swift b/Tests/BinaryParsingMacrosTests/ParserMacroTests.swift index 482943d..0f072d9 100644 --- a/Tests/BinaryParsingMacrosTests/ParserMacroTests.swift +++ b/Tests/BinaryParsingMacrosTests/ParserMacroTests.swift @@ -20,9 +20,9 @@ struct StringifyMacroSwiftTestingTests { @Test func magicNumberString() { assertMacro { - #"try #magicNumber("qoif", parsing: &input)"# + #"try #magicNumber("qoif", parsing: &data)"# } expansion: { - "try _loadAndCheckDirectBytes(parsing: &input, bigEndianValue: 0x716f6966 as UInt32)" + "try _loadAndCheckDirectBytes(parsing: &data, bigEndianValue: 0x716f6966 as UInt32)" } } } From 52436dd861e49243b8caf6d29905984d29689f73 Mon Sep 17 00:00:00 2001 From: kkazuha7 <213830798+kkazuha7@users.noreply.github.com> Date: Wed, 3 Sep 2025 00:21:24 -0400 Subject: [PATCH 2/2] style: fix format issue --- Sources/BinaryParsingMacros/MagicNumberStringMacro.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Sources/BinaryParsingMacros/MagicNumberStringMacro.swift b/Sources/BinaryParsingMacros/MagicNumberStringMacro.swift index 6137e68..3513353 100644 --- a/Sources/BinaryParsingMacros/MagicNumberStringMacro.swift +++ b/Sources/BinaryParsingMacros/MagicNumberStringMacro.swift @@ -52,7 +52,9 @@ public struct MagicNumberStringMacro: ExpressionMacro { } var parsingExpr = "input" - if let parsingArg = node.arguments.first(where: { $0.label?.text == "parsing" }) { + if let parsingArg = node.arguments.first(where: { + $0.label?.text == "parsing" + }) { parsingExpr = parsingArg.expression.description }