Skip to content

Commit aacd742

Browse files
authored
fix: MagicNumberStringMacro to support custom parsing argument (#30)
1 parent e9915c7 commit aacd742

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

Sources/BinaryParsingMacros/MagicNumberStringMacro.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,16 @@ public struct MagicNumberStringMacro: ExpressionMacro {
5151
return ""
5252
}
5353

54+
var parsingExpr = "input"
55+
if let parsingArg = node.arguments.first(where: {
56+
$0.label?.text == "parsing"
57+
}) {
58+
parsingExpr = parsingArg.expression.description
59+
}
60+
5461
return """
5562
_loadAndCheckDirectBytes(\
56-
parsing: &input, \
63+
parsing: \(raw: parsingExpr), \
5764
bigEndianValue: 0x\(raw: String(integerValue, radix: 16)) as \(raw: integerType))
5865
"""
5966
}

Tests/BinaryParsingMacrosTests/ParserMacroTests.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ struct StringifyMacroSwiftTestingTests {
2020
@Test
2121
func magicNumberString() {
2222
assertMacro {
23-
#"try #magicNumber("qoif", parsing: &input)"#
23+
#"try #magicNumber("qoif", parsing: &data)"#
2424
} expansion: {
25-
"try _loadAndCheckDirectBytes(parsing: &input, bigEndianValue: 0x716f6966 as UInt32)"
25+
"try _loadAndCheckDirectBytes(parsing: &data, bigEndianValue: 0x716f6966 as UInt32)"
2626
}
2727
}
2828
}

0 commit comments

Comments
 (0)