deadpixi / ergex

The Ergex Regular Expression Library
GNU Lesser General Public License v2.1
123 stars 1 forks source link

Ergex's regex API should match the Aho-Corasick API #3

Open deadpixi opened 2 years ago

deadpixi commented 2 years ago

The push-oriented implementation of Aho-Corasick returns an iterator over the matches it finds. The public regex API instead reports matches via callbacks. I'd like to see the public API also return an iterator.

Something like:


for match in scratch.push(bytes) {
    // do things
}

A big question is how to handle scratch.finish, which consumes the scratch but also might return matches.

raghav-deepsource commented 2 years ago

that could be handled using Iterator::collect. the only difference being that it would be possible to get a collection with 0 elements if there are no stored matches in the instance. I admit I haven't seen much of how this library works, but I'm throwing this idea out there.

raghav-deepsource commented 2 years ago

you could implement drop on the iterator in such a way that it also "finishes" the associated scratch struct...