Class MailRuleSetEvaluation
- Namespace
- MailFathom.Application.Rules
- Assembly
- MailFathom.Application.dll
What a whole rule set concluded about one email, under the revision it concluded it.
public sealed record MailRuleSetEvaluation : IEquatable<MailRuleSetEvaluation>
- Inheritance
-
MailRuleSetEvaluation
- Implements
- Inherited Members
Remarks
The evaluations are in declared order and stop where the pass stopped, so the record says both what every rule concluded and which rules were never reached. That distinction is what a later explanation of a run needs: a rule that did not match and a rule nobody asked are different facts about the same pass.
The action plan travels with them rather than being derived by a caller, because composing it needs the rules in declared order and the caller holds only their names. Deriving it here is also what keeps the resolution of two conflicting rules a property of the set rather than of whoever asks.
Properties
- ActionPlan
Gets what the matching rules together ask the mailbox for, in the order the changes are applied.
- Evaluations
Gets what each rule the pass reached concluded, in declared order.
- HasFailures
Gets whether any rule the pass reached produced no answer.
- MatchedRuleNames
Gets the names of the rules that matched, in declared order.
- Revision
Gets the identity of the rule set the pass ran against.
- StoppedEarly
Gets whether a matching rule ended the pass before the rules below it were reached.
Methods
- Create(MailRuleSetRevision, IReadOnlyList<MailRuleEvaluation>, bool, MailRuleActionPlan?)
Records the result of one pass over a rule set.