Struct MailRuleExecutionCursor
- Namespace
- MailFathom.Application.Rules.History
- Assembly
- MailFathom.Application.dll
Marks where one page of the rule history ended, so the next page continues from it.
public readonly record struct MailRuleExecutionCursor : IEquatable<MailRuleExecutionCursor>
- Implements
- Inherited Members
Remarks
The history is ordered newest first by evaluation instant, with the execution identifier breaking a tie, and this pairs those two values with a fingerprint of the filters the page was read under. The pair is what makes pagination keyset-based rather than offset-based: a pass that records executions between two requests neither shifts a window nor causes an execution to be skipped or repeated. The fingerprint is what makes the boundary meaningful, because a position names a page edge only within the filtered set it was computed for.
It carries no secret and needs no signature: every value in it is one the caller already supplied or already received. Encoding is about opacity rather than protection — a client that cannot read a cursor does not build one.
Fields
- MaximumEncodedLength
The greatest number of characters an encoded cursor may carry before it is refused unread.
Properties
- EvaluatedAt
Gets the evaluation instant of the last execution the page returned.
- ExecutionId
Gets the identity of that execution, which breaks a tie between two recorded in one instant.
- FilterFingerprint
Gets the fingerprint of the filters this cursor was issued for.
Methods
- After(DateTimeOffset, MailRuleExecutionId, string)
Creates the cursor that continues a walk after one position in the history.
- Encode()
Writes the cursor as the opaque string a caller presents to continue the walk.
- TryDecode(string?, out MailRuleExecutionCursor)
Reads a cursor a caller presented.