Minor variable renaming & formatting.
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
This commit is contained in:
parent
bac7cedd36
commit
24b54ec8cb
|
@ -3,22 +3,20 @@ import Foundation
|
||||||
extension Data {
|
extension Data {
|
||||||
|
|
||||||
fileprivate func boyerMoore(data: Data, from: Index) -> Index? {
|
fileprivate func boyerMoore(data: Data, from: Index) -> Index? {
|
||||||
let patternLength = data.count
|
let patternCount = data.count
|
||||||
precondition(patternLength > 0, "Pattern can't be empty.")
|
precondition(patternCount > 0, "Pattern can't be empty.")
|
||||||
precondition(count >= patternLength, "Pattern can't be >= than the Data to search in.")
|
precondition(count >= patternCount, "Pattern can't be >= than the Data to search in.")
|
||||||
precondition(indices.contains(from), "Index from which to start the lookup must be contained in the Data.")
|
precondition(indices.contains(from), "Index from which to start the lookup must be contained in the Data.")
|
||||||
|
|
||||||
var skipTable = [UInt8: Int]()
|
var skipTable = [UInt8: Int]()
|
||||||
for (i, byte) in data.enumerated() {
|
for (i, byte) in data.enumerated() { skipTable[byte] = patternCount - i - 1 }
|
||||||
skipTable[byte] = patternLength - i - 1
|
|
||||||
}
|
|
||||||
|
|
||||||
let lastIndexOfSelf = endIndex
|
let lastIndexOfSelf = endIndex
|
||||||
let lastIndexOfData = data.index(before: data.endIndex)
|
let lastIndexOfData = data.index(before: data.endIndex)
|
||||||
let lastByteOfData = data.last
|
let lastByteOfData = data.last
|
||||||
var i = index(
|
var i = index(
|
||||||
from,
|
from,
|
||||||
offsetBy: patternLength - 1,
|
offsetBy: patternCount - 1,
|
||||||
limitedBy: lastIndexOfSelf
|
limitedBy: lastIndexOfSelf
|
||||||
) ?? lastIndexOfSelf
|
) ?? lastIndexOfSelf
|
||||||
|
|
||||||
|
@ -44,7 +42,7 @@ extension Data {
|
||||||
} else {
|
} else {
|
||||||
i = index(
|
i = index(
|
||||||
i,
|
i,
|
||||||
offsetBy: skipTable[byte] ?? patternLength,
|
offsetBy: skipTable[byte] ?? patternCount,
|
||||||
limitedBy: lastIndexOfSelf
|
limitedBy: lastIndexOfSelf
|
||||||
) ?? lastIndexOfSelf
|
) ?? lastIndexOfSelf
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue