internal IEnumerable <ulong> AttemptMatch(ulong trigger, RuleInvocationContext context) { foreach (Rule rule in _Rules) { if (rule.IsTrue(trigger, context)) { yield return(rule.Result); } } }
internal bool IsTrue(ulong trigger, RuleInvocationContext context) { if (Trigger != trigger) { return(false); } foreach (RuleCondition condition in Conditions) { if (!condition.IsTrue(context)) { return(false); } } return(true); }
internal bool IsTrue(RuleInvocationContext context) { if (!context.TryGetValue(VarNameBitString, out double value)) { return(false); } if (value == Min && value == Max) { return(true); } if (value + Epsilon >= Min && value - Epsilon <= Max) { return(true); } return(false); }