pub trait Convolution<F: Symbol> {
// Required methods
fn convolute<T: AsRef<[Option<Term<F>>]>>(
terms: T,
) -> Term<Rank<Convoluted<F>>>;
fn deconvolute(term: Term<Rank<Convoluted<F>>>) -> Vec<Option<Term<F>>>;
fn generic_automaton<Q: State>(
aut: &Automaton<Rank<Convoluted<F>>, Q, NoLabel>,
) -> Automaton<Convoluted<F>, Q, Convoluted<u32>>;
fn equality<Q: State>(
aut: &Automaton<F, Q, NoLabel>,
n: usize,
) -> Automaton<Rank<Convoluted<F>>, Q, NoLabel>;
fn state_convolution<E, Q: LanguageState<F, E>>(
initial_state: Convoluted<Q>,
env: &E,
) -> Automaton<Rank<Convoluted<F>>, Convoluted<Q>, NoLabel>;
fn search<'a, 'e, Q: State, X: 'a + Family + Ord + Clone>(
automata: &'a [&'e Automaton<Rank<Convoluted<F>>, Q, NoLabel>],
patterns: Vec<Convoluted<Pattern<F, X>>>,
kill_signal: Option<Receiver<()>>,
) -> Box<dyn Iterator<Item = Result<Vec<Term<Rank<Convoluted<F>>>>, Killed>> + 'a>;
}
Expand description
Convolution operations.
Required Methods§
Sourcefn convolute<T: AsRef<[Option<Term<F>>]>>(terms: T) -> Term<Rank<Convoluted<F>>>
fn convolute<T: AsRef<[Option<Term<F>>]>>(terms: T) -> Term<Rank<Convoluted<F>>>
Perform a term convolution.
Sourcefn deconvolute(term: Term<Rank<Convoluted<F>>>) -> Vec<Option<Term<F>>>
fn deconvolute(term: Term<Rank<Convoluted<F>>>) -> Vec<Option<Term<F>>>
Perform a term deconvolution.
Sourcefn generic_automaton<Q: State>(
aut: &Automaton<Rank<Convoluted<F>>, Q, NoLabel>,
) -> Automaton<Convoluted<F>, Q, Convoluted<u32>>
fn generic_automaton<Q: State>( aut: &Automaton<Rank<Convoluted<F>>, Q, NoLabel>, ) -> Automaton<Convoluted<F>, Q, Convoluted<u32>>
Generic alternating-automaton out of a convoluted bottom-up automaton.
Sourcefn equality<Q: State>(
aut: &Automaton<F, Q, NoLabel>,
n: usize,
) -> Automaton<Rank<Convoluted<F>>, Q, NoLabel>
fn equality<Q: State>( aut: &Automaton<F, Q, NoLabel>, n: usize, ) -> Automaton<Rank<Convoluted<F>>, Q, NoLabel>
Compute the equality predicate over a domain between n
variables.
fn state_convolution<E, Q: LanguageState<F, E>>( initial_state: Convoluted<Q>, env: &E, ) -> Automaton<Rank<Convoluted<F>>, Convoluted<Q>, NoLabel>
fn search<'a, 'e, Q: State, X: 'a + Family + Ord + Clone>( automata: &'a [&'e Automaton<Rank<Convoluted<F>>, Q, NoLabel>], patterns: Vec<Convoluted<Pattern<F, X>>>, kill_signal: Option<Receiver<()>>, ) -> Box<dyn Iterator<Item = Result<Vec<Term<Rank<Convoluted<F>>>>, Killed>> + 'a>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.