Trait Convolution

Source
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§

Source

fn convolute<T: AsRef<[Option<Term<F>>]>>(terms: T) -> Term<Rank<Convoluted<F>>>

Perform a term convolution.

Source

fn deconvolute(term: Term<Rank<Convoluted<F>>>) -> Vec<Option<Term<F>>>

Perform a term deconvolution.

Source

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.

Source

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.

Source

fn state_convolution<E, Q: LanguageState<F, E>>( initial_state: Convoluted<Q>, env: &E, ) -> Automaton<Rank<Convoluted<F>>, Convoluted<Q>, NoLabel>

Source

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.

Implementors§