# [−][src]Module fst::set

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

Difference | A stream of set difference over multiple streams in lexicographic order. |

Intersection | A stream of set intersection over multiple streams in lexicographic order. |

OpBuilder | A builder for collecting set streams on which to perform set operations. |

Set | Set is a lexicographically ordered set of byte strings. |

SetBuilder | A builder for creating a set. |

Stream | A lexicographically ordered stream of keys from a set. |

StreamBuilder | A builder for constructing range queries on streams. |

SymmetricDifference | A stream of set symmetric difference over multiple streams in lexicographic order. |

Union | A stream of set union over multiple streams in lexicographic order. |