# Functions
BuildTermFromRunesOptimistic will build a term from the provided runes AND optimistically attempt to encode into the provided buffer if at any point it appears the buffer is too small, a new buffer is allocated and that is used instead this should be used in cases where frequently the new term is the same length or shorter than the original term (in number of bytes).
# Interfaces
A TokenFilter adds, transforms or removes tokens from a token stream.
A Tokenizer splits an input string into tokens, the usual behaviour being to map words to tokens.