Fast asynchronous swift collection search using the Boyer–Moore string-search algorithm. fastSearch
can be used with any BidirectionalCollection
where Element
is Hashable
, and is especially useful for searching large amounts of data or long strings and displaying the results as they come in.
FindFaster is used for find and replace in HextEdit, a fast and native macOS hex editor.
import FindFaster
let text = "Lorem ipsum dolor sit amet"
let search = "or"
for await index in text.fastSearchStream(for: search) {
print("Found match at: \(index)")
}
// Prints:
// Found match at: 1
// Found match at: 15
import FindFaster
let text = "Lorem ipsum dolor sit amet"
let search = "or"
let results = text.fastSearch(for: search)
print("Results: \(results)")
// Prints:
// Results: [1, 15]
import FindFaster
let text = "Lorem ipsum dolor sit amet"
let search = "or"
text.fastSearch(for: search) { index in
print("Found match at: \(index)")
}
// Prints:
// Found match at: 1
// Found match at: 15