Module fst::set

source ·
Expand description

Set operations implemented by finite state transducers.

This API provided by this sub-module is close in spirit to the API provided by std::collections::BTreeSet. The principle difference, as with everything else in this crate, is that operations are performed on streams of byte strings instead of generic iterators. Another difference is that most of the set operations (union, intersection, difference and symmetric difference) work on multiple sets at the same time, instead of two.

Overview of types

Set is a read only interface to pre-constructed sets. SetBuilder is used to create new sets. (Once a set is created, it can never be modified.) Stream is a stream of values that originated from a set (analogous to an iterator). StreamBuilder builds range queries. OpBuilder collects a set of streams and executes set operations like union or intersection on them. The rest of the types are streams for set operations.

Structs

A stream of set difference over multiple streams in lexicographic order.
A stream of set intersection over multiple streams in lexicographic order.
A builder for collecting set streams on which to perform set operations.
Set is a lexicographically ordered set of byte strings.
A builder for creating a set.
A lexicographically ordered stream of keys from a set.
A builder for constructing range queries on streams.
A stream of set symmetric difference over multiple streams in lexicographic order.
A stream of set union over multiple streams in lexicographic order.