Skip to content

Commit 80aa781

Browse files
minor performance improvement to parseLiteralValue
1 parent 30af331 commit 80aa781

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

Sources/HTMLKitParse/ParseLiteral.swift

+6-2
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,13 @@ extension HTMLKitUtilities {
5454
string = "\\(" + member.singleLineDescription + ")"
5555
} else {
5656
var expressionString = "\(expression)"
57-
while expressionString.first?.isWhitespace ?? false {
58-
expressionString.removeFirst()
57+
var removed = 0
58+
var index = expressionString.startIndex
59+
while index < expressionString.endIndex, expressionString[index].isWhitespace {
60+
removed += 1
61+
expressionString.formIndex(after: &index)
5962
}
63+
expressionString.removeFirst(removed)
6064
while expressionString.last?.isWhitespace ?? false {
6165
expressionString.removeLast()
6266
}

Sources/HTMLKitUtilityMacros/HTMLElements.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ enum HTMLElements: DeclarationMacro {
6363
}
6464
} else {
6565
var isArray = false
66-
let (value_type, default_value, value_type_literal):(String, String, HTMLElementValueType) = parse_value_type(isArray: &isArray, key: key, label.expression)
66+
let (value_type, default_value, value_type_literal) = parse_value_type(isArray: &isArray, key: key, label.expression)
6767
switch value_type_literal {
6868
case .otherAttribute(let other):
6969
other_attributes.append((key, other))

0 commit comments

Comments
 (0)