[Finite State Machine] for counting [:ty TokenTree cluster]s in [:ty TokenStream]s and other [:ty TokenTree cluster sequence]s
Being maximally fast is the the main goal of this crate. For that reason, mathematical reasoning about its performance in conjunction with repeatable benchmarks to prove or refute the theory will be presented. Definitions, signs, and properties of the crate will reveal its mathematical foundations.
The terminology widely used in the crate
[TokenTree sequence], as opposed to the [TokenStream], is a concept and not a particular implementation of a sequence of [TokenTree]s
[:ty TokenTree cluster] is a [TokenTree sequence] that matches :ty [designator]
[:ty TokenTree cluster sequence] is a sequence of [:ty TokenTree cluster]s
Declarative macro pattern is a pattern for matching [TokenTree]s in declarative macros
/"macros by example"/macro_rules!/plain macros. For example, $($type:ty),*
pattern. Learn more about [declarative macro pattern]s and [designator]s.
[:ty TokenTree sequence]
[:ty TokenStream] is a [TokenStream] that matches $($type:ty),*
[declarative macro pattern]
Features of particular entities that allow to claim that they are in fact also have the propety of being something else. For example, if the left operand of a summation is 1 and the right operand of the summation is 1, we can guarantee that the result of the operation is 2.
In a non-empty [:ty TokenTree sequence], the first [:ty TokenTree cluster] starts at index 0 and each consequent occurence of a ":" [TokenTree]::[Punct] followed by a "ty" more [TokenTree]s, is immediately followed by the beginning of the next [:ty TokenTree cluster]. In an empty [:ty TokenTree sequence], there are no [:ty TokenTree cluster]s.
None