use crate::traits::{GrowableVocabulary, Vocabulary};
pub trait VocabularyBuilder {
type Vocabulary: GrowableVocabulary;
type Symbols: IntoIterator<
Item = (
<Self::Vocabulary as Vocabulary>::SourceSymbol,
<Self::Vocabulary as Vocabulary>::DestinationSymbol,
),
>;
#[must_use]
fn ignore_duplicates(self) -> Self;
fn should_ignore_duplicates(&self) -> bool;
#[must_use]
fn expected_number_of_symbols(self, number_of_symbols: usize) -> Self;
fn get_expected_number_of_symbols(&self) -> Option<usize>;
#[must_use]
fn symbols(self, symbols: Self::Symbols) -> Self;
}