pub trait FeedbackLogic<A, B, I, S>: 'static where
A: Feedback<I, S>,
B: Feedback<I, S>,
I: Input, {
fn name() -> &'static str;
fn is_pair_interesting<EM, OT>(
first: &mut A,
second: &mut B,
state: &mut S,
manager: &mut EM,
input: &I,
observers: &OT,
exit_kind: &ExitKind
) -> Result<bool, Error>
where
EM: EventFirer<I, S>,
OT: ObserversTuple<I, S>;
}
fn is_pair_interesting<EM, OT>(
first: &mut A,
second: &mut B,
state: &mut S,
manager: &mut EM,
input: &I,
observers: &OT,
exit_kind: &ExitKind
) -> Result<bool, Error> where
EM: EventFirer<I, S>,
OT: ObserversTuple<I, S>,
impl<A, B, I, S> FeedbackLogic<A, B, I, S> for LogicEagerAnd where
A: Feedback<I, S>,
B: Feedback<I, S>,
I: Input,
impl<A, B, I, S> FeedbackLogic<A, B, I, S> for LogicEagerOr where
A: Feedback<I, S>,
B: Feedback<I, S>,
I: Input,
impl<A, B, I, S> FeedbackLogic<A, B, I, S> for LogicFastAnd where
A: Feedback<I, S>,
B: Feedback<I, S>,
I: Input,
impl<A, B, I, S> FeedbackLogic<A, B, I, S> for LogicFastOr where
A: Feedback<I, S>,
B: Feedback<I, S>,
I: Input,