Table of Contents

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.