automatic_relations/
pattern.rs

1use std::fmt;
2use terms::{
3    Term
4};
5use crate::{
6    Convoluted,
7};
8
9// pub struct SearchContext {
10//     patterns: Vec<Convoluted<Pattern>>
11// }
12
13#[derive(Debug, PartialEq, Eq, Clone, Hash)]
14pub enum MaybeVar<F, X> {
15    Symbol(F),
16    Var(X)
17}
18
19pub type ConvolutedPattern<F, X> = Term<Convoluted<MaybeVar<F, X>>>;
20
21impl<F: fmt::Display, X: fmt::Display> fmt::Display for MaybeVar<F, X> {
22    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
23        match self {
24            MaybeVar::Symbol(s) => s.fmt(f),
25            MaybeVar::Var(t) => t.fmt(f)
26        }
27    }
28}