-
Notifications
You must be signed in to change notification settings - Fork 5
Description
I am building an application that generates new FST objects every hour. I would like to be able to do efficient range operations over a group of these FST files. Conceptually, something like combining the __getitem__ implementation with the OpBuilder. Basically, returning a KeyStreamIterator for multiple Set objects' range operation (pseudo code:
s1 = Set.from_iter(["bar", "baz", "foo", "moo"])
s2 = Set.from_iter(["bing", "jar, "foo", "moo"])
s2 = Set.from_iter(["bap", "bonk, "foo", "moo"])
(s1 + s2 + s3)["b":"f"]
The existing API seems cumbersome for doing operations across multiple. You have to pick a (possibly arbitrary) instance, then call .union / .intersection etc with the rest of the objects. Would it be possible to have some sort of MultiSet class that could perform efficient calls across multiple Set objects?
I can take a crack at implementing it; it appears the underlying Rust API would support this.